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站点 [ ...
随机推荐
- maven压缩js css
maven压缩<plugin> <!-- YUI Compressor Maven压缩插件 --> <groupId>net.alchim31.maven</ ...
- Surging1.0发布在即,.NET开发者们,你们还在等什么?
Surging1.0发布在即,.NET开发者们,你们还在等什么? 开源,是近三十年来互联网经久不衰的话题.它不仅仅是一种技术分享的形态,更是一种开放,包容,互利共赢的互联网精神. 不到30年前,大神林 ...
- 追逐心目中的那个Ta
申明:全篇皆为作者臆想,浪漫主义代表派作品,若有雷同,纯属巧合 人生最难过的不就是在一无所有的年纪里遇到了最想呵护一生的人,而在拥有一切的时候却失去了不顾一切的心. 长夜漫漫,本是相思人,偏听多情曲, ...
- 10-JavaScript之DOM的事件操作
JavaScript之DOM的事件操作 1.介绍 JavaScript基础分为三个部分: ECMAScript:JavaScript的语法标准.包括变量.表达式.运算符.函数.if语句.for语句等 ...
- PS调出韩式米黄色室内婚纱照片
原图: Camera Raw打开原图. 光线调整,压暗白色,保留高光细节,少量对比黑色压暗. 降低整体饱和. 曲线调整,压暗高光明度. 减红加青(融合色彩). 中间调,靠近暗部区域加蓝,靠近亮部区域加 ...
- Uint 7.文本和字体属性,background,精灵图和3种定位
一. 文本属性 CSS 文本属性可定义文本的外观. 通过文本属性,您可以改变文本的颜色.字符间距,对齐文本,装饰文本,对文本进行缩进,等等. <!DOCTYPE html> <htm ...
- Struts2拦截SQL注入
<interceptors> <!--设置超时拦截器 --> <interceptor name="sessionOut" class="c ...
- C# 数组、HashSet等内存耗尽的解决办法
在C#中,如果数据量太大,就会出现 'System.OutOfMemoryException' 异常. 解决办法来自于Stack Overflow和MSDN https://docs.micro ...
- 复习IIC协议---以AT24C02为例
1.总纲--复习IIC(inter integrated circuit)协议以及自己顺便读一下数据手册. /********************************************* ...
- 【XSY2988】取石子 博弈论
题目描述 有 \(n\) 堆石子,每堆石子的个数是 \(c_i\). Alice 和 Bob 轮流取石子(先后手未定),Alice 每次从一堆中取 \(a\) 个,Bob每次从一堆中取 \(b\) 个 ...