Nginx详解二十五:Nginx架构篇之Nginx常见的问题

 

Nginx常见的问题

1、相同server_name多个虚拟主机优先级访问,是按读取文件的优先级来排序

在/opt/app/下准备3个code文件夹,下面放入3个html文件,里面的内容分别是code1下对应server1...

 

在/etc/nginx/conf.d/下准备了3个conf文件

diff看一下区别,server1就指定code1...

检查语法,并重载
nginx -tc /etc/nginx/nginx.conf
nginx -s reload -c /etc/nginx/nginx.conf

访问,是server1

把server1改成server5再重启再访问

检查配置,重启

访问变成server2

 

2、location匹配优先级

= 进行普通字符精确匹配,也就是完全匹配
^~表示普通字符匹配,使用前缀匹配
~ \~* 表示执行一个正则匹配()
精确匹配和前缀匹配优先级是最高的,一旦匹配到一个就直接走此location,则不会再往下匹配
正则匹配就算匹配到一个 location,也还是会接着匹配,看时候还有比当前location更完整,更匹配的location存在,后面没有了,才匹配本身

检查配置并重载

访问,此时匹配到code1以后,就不再往下匹配了

 

把code1的location注释掉

检查语法并重载

再访问,变成server2

匹配到了最下面那个

 

把code2的location也注释掉

检查并重载

访问,这个时候才能访问到server3

 

 

3、try_files使用

try_files用于按顺序检测文件是否存在,如果存在就返回文件内容,如果不存在,则进行配的对应规则

在/opt/app/code/cache下放一个html文件

配置conf文件

把之前的location全部注释掉,重新添加两个location

配置为,根据url去找对应信息,如果没找到就@java_page,java_page会去访问9090

重启tomcat9090,检查配置并重启Nginx,浏览器访问,出来的是page1

 

 

把page1挪走,就会触发try_files的自定义规则匹配,访问page3

 

 

4、Nginx的alias和root区别

 

 root:指定程序的目录在哪一个位置

 

alias:

 

5、用什么方法传递用户真实的IP

和第一级代理取得联系,约定一个头信息,代理1在Nginx头信息里面加上对应的名称信息,如set x_real_ip=$remote_addr,设置号以后,带着这个头信息传给后面的代理,一直到后端服务器,就可以取到x_real_ip的值,即用户真实IP

 

6、Nginx常见问题


Nginx:413 Request Entity Too Large
请求的内容太大了
解决办法:用户上传文件限制修改:client_max_body_size

502 bad gateway
后台网关错误(后端服务无响应,如:把tomcat关掉再访问)

504 Gateway Time-out
后端服务执行超时(数据库取数据很慢的时候、后端负载很高、连接超时),Nginx默认的等待时间是60秒,超过60秒Nginx就会返回504

 

猜你喜欢

转载自www.cnblogs.com/zhongyehai/p/10545066.html