Nginx常见问题(十二)

2018-05-25  本文已影响31人  andpy

nginx常见问题

相同server_name 多个虚拟主机优先级访问

#server1
server {
    listen 80
    server_name testserver1 www.applelife.xyz;
    loaction {
        ...
        root /opt/app/code1
    }
}

#server2
 server {
    listen 80
    server_name testserver2 www.applelife.xyz;
    loaction {
        ...
        root /opt/app/code2
    }
}

对于相同的serverName,可以运行,但会出现警告, nginx会优先读取到的配置文件

linux查看文件不同

diff test1.conf test2.conf

location匹配的优先级

= 进行普通字符精确匹配,即使完全匹配 较高
^~ 表示普通匹配,使用前缀匹配
~\~* 表示执行一个正则匹配()

优先级: 完全匹配 > 前缀匹配 > 普通正则匹配

//示例
#完全匹配 http://www.applelife.com/code1/
location = /code1/ {
    rewrite ^(.*)$ /code1/index.html break;
}
#正则匹配 
location ~ /code.* {
    rewrite ^(.*)$ /code2/index.html bradk;
}
#前缀匹配
location ^~code {
    rewrite ^(.*)$ /code3/index.html break;
}

Nginx try_files的使用
按顺序检查文件是否存在,缓存的场景

#先在本地查找该文件 ,没有再加一个/ 的路径下查找
location / {
    try_files $uri $uri/ /index.php;
}

//示例 在目录中没哟找到该文件,将会转到 @java_page location
location / {
    root /opt/app/code/cache;
    try_files $uri @java_page;
}

location @java_page {
    proxy_pass http://127.0.0.1:9090;
}

Nginx的 alias 和 root的区别

root配置

如果有一个请求 http://www.applelife.xyz/request_path/image/cat.png

location /request_path/image/ {
    root /local_path/image/;
}

//实际的请求
/lcoal/_path/iamge/request_path/image/cat.png

alias配置

location /request_path/image/ {
    alias /local_path/image/;
}
//实际请求路径
/local_path/image/cat.png

传递用户的真实的Ip地址
在第一级代理的时候,告诉代理设置一个请求头给传过来,貌似这个有难度。

x-real-ip

nginx常见错误码

nginx:413 Request Entity Too Large?
用户上传文件限制 client_max_body_size

502 bad gateway?
后端服务没有响应,tomcat关闭等

504 Gateway timeout ?
后端服务执行超时等 
上一篇 下一篇

猜你喜欢

热点阅读