首页 > 其他 > 详细

nginx之location

时间:2020-03-27 15:55:34      阅读:64      评论:0      收藏:0      [点我收藏+]

参考网网文:https://www.cnblogs.com/xiaoliangup/p/9175932.html

这里主要记录一下遇到的坑:

1、root 、alias指令区别

location /img/ {
    alias /var/www/image/;
}
#若按照上述配置的话,则访问/img/目录里面的文件时,ningx会自动去/var/www/image/目录找文件
location /img/ {
    root /var/www/image;
}
#若按照这种配置的话,则访问/img/目录下的文件时,nginx会去/var/www/image/img/目录下找文件。] 

alias是一个目录别名的定义,root则是最上层目录的定义。

还有一个重要的区别是alias后面必须要用“/”结束,否则会找不到文件的。。。而root则可有可无~~

2、location结尾有/和没有

没有“/”时,location /abc/def可以匹配/abc/defghi请求,也可以匹配/abc/def/ghi等

而有“/”时,location /abc/def/不能匹配/abc/defghi请求,也不能请求/abc/def,只能匹配/abc/def/anything这样的请求

3、nginx、tomcat、外网 三个不同端口,出现302重定向问题(外网访问首页可以,跳转登录,端口自动转成内网的nginx端口导致失败)

  3.1使用absolute_redirect属性,重定向是是否添加域名(包含端口),默认为on,设置为off,

 location /anyquery {
            proxy_pass http://192.168.2.41:8008;
            absolute_redirect off;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For 
            $proxy_add_x_forwarded_for;
        }

      3.2使用proxy_set_header属性,这里不好的一点是必须配置外网端口,如果用$server_port取的是nginx的

location /anyquery {
            proxy_pass http://192.168.2.41:8008;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For 
            $proxy_add_x_forwarded_for;
            proxy_set_header Host $host:8002;
        }

      3.3使用proxy_redirect属性,这里把返回给客户端的地址和端口强制变为外网的地址和端口,我实操的时候,proxy_pass得直接写地址,不能用负载,还是对机制了解不够

location /anyquery {
            proxy_pass http://192.168.2.41:8008;
            proxy_redirect http://192.168.2.41:8008/ http://外网ip:8002/;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

 

nginx之location

原文:https://www.cnblogs.com/aishangyizhihu/p/12580948.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!