Nginx的相关细节
1.Location匹配规则
1.1 root的匹配规则
默认情况下,root会直接与location拼接,root可以理解为是location的上级目录
server {
listen 80;
root /var/www/html;
location /image {
root /var/www/data;
}
}
# 用户请求 http://www.example.com/image/test.png
# 最终访问的是/var/www/data/image/test.png
1.2 proxy_pass的匹配规则
proxy_pass的匹配规则取决于代理地址后面是否有子路径,有子路径则匹配提出location部分的内容,没子路径就全部匹配
- 无子路径
location /image {
proxy_pass http://127.0.0.1:8888;
}
# 用户请求 http://www.example.com/image/test.png
# 最终访问的是http://127.0.0.1:8888/image/test.png
- 有子路径
location /image {
proxy_pass http://127.0.0.1:8888/example;
}
# 用户请求 http://www.example.com/image/test.png
# 最终访问的是http://127.0.0.1:8888/example/test.png
1.3 alias的匹配规则
alias的匹配规则是最准确的,因为他会直接的替换location的内容
server {
listen 80;
root /var/www/html;
location /image/abc/ {
alias /var/www/data/;
}
}
# 用户请求 http://www.example.com/image/abc/test.png
# 最终访问的是/var/www/data/test.png
/var/www/data/替换了 /image/abc/
2. Windows的Nginx配置不生效
windows在更新nginx.conf
后需要手动杀死之前的nginx
进程,否则之前的旧进程会一直存在
taskkill /IM nginx.exe /F