nginx问题相关记录
nginx目前主要用来做反向代理和负载均衡,其实它也可以是一个web服务器;
1、反向代理:
location /api/ {
        proxy_next_upstream error timeout http_503 http_502 http_504;
        proxy_pass http://myweb1-server/api/;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
}
2、七层的负载均衡:
upstream web1 {
        server 127.0.0.1:111 weight=1;
        server 127.0.0.1:222 weight=1;
    }
    upstream web2 {
        server 127.0.0.2:111 weight=1;
        server 127.0.0.2:222 weight=6;
        server 127.0.0.2:333 weight=7;
    }
3、nginx中root与alias的区别:
1、root的处理结果是:root路径+location路径
alias的处理结果是:使用alias路径替换location路径
例如:location /a/{
root /data/www;
}
访问http://dlgde.cn/a/page.html,root会对应到资源/data/www/a/page.html,也就是root路径+location路径;
而location /a/{
alias /data/www;
}
同样请求http://dlgde.cn/a/page.html,请求资源查找路径是 /data/www/page.html,不管location怎默写,都是去alias指定的路径。
2其他区别:
- alias 只能作用在location中,而root可以存在server、http和location中。
 - alias 后面必须要用 “/” 结束,否则会找不到文件,而 root 则对 ”/” 可有可无
 
详情参考;
4、获取客户端的真实ip
跟proxy_set_header配置有关,具体参考。经过反向代理设置以后,真正的客户端的ip是取X-Forwarded-For中第一个非unknown的有效IP字符串。
5、nginx手机跳转设置,
加个条件判断,是手机请求,就rewrite到手机相应的网址。例如:
location / {
        if ($http_user_agent ~* "(Android|iPhone|iPod|Symbian|BlackBerry|Windows Phone|Mobile|J2ME)") {
        rewrite ^ http:stage01.dlgde.cn permanent;
    }
        root   /data/www/stage01/dlgde/;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html; 
        expires 5;
    }
6、nginx中的try_files 使用:
如5中提到的,这个指令,其作用是按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹),如果所有的文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。但最后一个一定不能为空,不然会进入死循环而报500的错误,参考
7、nginx中的if是个坑:
nginx的配置中不支持if条件的逻辑与/逻辑或运算 ,并且不支持if的嵌套语法,例子查看
8、nginx和php网页结合
访问的时候会出现下载源文件的问题,这是因为nginx本身不能解析php的文件,需要在nginx中改一下配置,把下面这个加上。
location ~ \.php$ {
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
上面这个配置其实也还是说最后还是需要一个php的服务来解析,先装一个php-fpm,具体安装参考,其实安装好了还是有很多坑的,因为当你把php-fpm的服务启动的时候,你发现还是不能访问,并且发现9000端口并没有启动,其实看下php-fpm的配置文件就知道了/etc/php7.2/fpm/pool.d/www.conf 里面listen = /var/run/php7.2-fpm.sock,发现监听的不是9000端口。改为listen = 9000,然后重启php-fpm的服务,9000端口正常启动,但是访问的时候说File not find,看来是文件没有找到。检查“location ~ .php$ {”配置项,发现了一行“fastcgi_param”的配置,然后将其改成了nginx的默认web目录(本机是/usr/share/nginx/html/),再次重启nginx服务后,发现可以进行访问了。如:
fastcgi_param SCRIPT_FILENAME /data/www/nginx/html$fastcgi_script_name;
nginx配合php还是比较坑的!
其他待记录。。。
nginx问题相关记录的更多相关文章
- Nginx Rewrite相关功能
		
目录 Nginx Rewrite相关功能 ngx_http_rewrite_module模块指令: if指令: set指令: break指令: return指令: rewrite_log指令: rew ...
 - [Android学习笔记]理解焦点处理原理的相关记录
		
焦点处理相关记录 以下所涉及的焦点部分,只是按键移动部分,不明确包含Touch Focus部分 需解决问题 控件的下一个焦点是哪? 分析思路 当用户通过按键(遥控器等)触发焦点切换时,事件指令会通过底 ...
 - Nginx http相关常用配置总结
		
Nginx http相关常用配置总结 by:授客 QQ:1033553122 测试环境 nginx-1.10.0 client_max_body_size Syntax: client_ma ...
 - 关于视觉跟踪中评价标准的相关记录(The Evaluation of Visual Tracking Results on OTB-100 Dataset)
		
关于视觉跟踪中评价标准的相关记录(The Evaluation of Visual Tracking Results on OTB-100 Dataset) 2018-01-22 21:49:17 ...
 - Nginx Rewrite相关功能-防盗链
		
Nginx Rewrite相关功能-防盗链 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
 - Nginx Rewrite相关功能-rewrite指令
		
Nginx Rewrite相关功能-rewrite指令 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
 - Nginx Rewrite相关功能-ngx_http_rewrite_module模块指令
		
Nginx Rewrite相关功能-ngx_http_rewrite_module模块指令 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
 - Dockerfile + Nginx.conf文件记录(用于前端项目部署)
		
Dockerfile + Nginx.conf文件记录(用于前端项目部署) 本教程依据个人理解并经过实际验证为正确,特此记录下来,权当笔记. 注:基于linux操作系统(敏感信息都进行了处理),默认服 ...
 - Nginx location相关配置说明
		
Nginx location相关配置说明 基于不同的IP.不同的端口以及不用得域名实现不同的虚拟主机,依赖于核心模块ngx_http_core_module实现. 新建PC web站点 [ ...
 
随机推荐
- 老牌开源Office操作组件NPOI现已支持.NET Core
			
昨天在微信群里听到老牌Excel开发利器NPOI的作者瞿总说4.6.1版本的NPOI已经支持.NET Standard 2.0了,这也就意味着你可以在.NET Core中使用NPOI了. 作者:依乐祝 ...
 - 【学习总结】Git学习-本地仓库覆盖式更新对于Git仓库的影响以及pull/push到GitHub
			
< 许久不用Git之后的探索 > 准备日常更新自己的GitHub了.但是编写的文件平时不放在Git仓库路径下. 故测试覆盖式更新对于仓库是否有影响 直接说结论: 通过对已有库的测试发现覆盖 ...
 - rxjs一句话描述一个操作符(1)
			
之前一直在写LINQ之类的东西,对于函数式的面向对象还是有一些功底,所以对于rxjs,感觉上不是很难,但是每次看完过几天就忘,还是记一下笔记吧,好记性不如烂笔头真不是盖的. 首先介绍几个重要的概念. ...
 - springboot的热部署
			
SpringBoot 4.SpringBoot 整合 devtools 实现热部署 一.添加 devtools 依赖 <!-- Spring boot 热部署 : 此热部署会遇到 java. ...
 - vue环境的搭建与第一个demo
			
参考两个博客 1 2 git.npm和淘宝镜像的安装过程过程省略了,直接开始webpack + vue-cli + 创建demo 首先,在磁盘创建一个文件夹,命名为vue-projects,里面再建一 ...
 - SpringBoot整合swagger
			
Swagger使用 Swagger有什么用? swagger是一个流行的API开发框架,这个框架以“开放API声明”(OpenAPI Specification,OAS)为基础, 对整个API的开发周 ...
 - jsp篇 之 基本概念
			
Jsp概念: 1.jsp是什么 jsp全称Java Server Pages,是一种[动态网页开发技术]. .html文件是静态页面 .jsp 文件是动态页面 jsp页面允许我们在html代码中[嵌入 ...
 - [洛谷P4234] 最小差值生成树
			
题目类型:\(LCT\)动态维护最小生成树 传送门:>Here< 题意:求一棵生成树,其最大边权减最小边权最小 解题思路 和魔法森林非常像.先对所有边进行排序,每次加边的时候删除环上的最小 ...
 - 【XSY2843】「地底蔷薇」 NTT什么的 扩展拉格朗日反演
			
题目大意 给定集合\(S\),请你求出\(n\)个点的"所有极大点双连通分量的大小都在\(S\)内"的不同简单无向连通图的个数对\(998244353\)取模的结果. \(n\le ...
 - Hdoj 1850.Being a Good Boy in Spring Festival 题解
			
Problem Description 一年在外 父母时刻牵挂 春节回家 你能做几天好孩子吗 寒假里尝试做做下面的事情吧 陪妈妈逛一次菜场 悄悄给爸爸买个小礼物 主动地 强烈地 要求洗一次碗 某一天早 ...