Nginx配置proxy_pass转发的/路径问题

最近在服务器配置nginx路由转发时遇到了一个问题,上代码

upstream halo {

server127.0.0.1:8090;

}

server {

listen80;

       listen [::]:80;

       server_name ctrl0118.top;

       client_max_body_size 1024m;

       location /blog {

               proxy_pass http://halo;

proxy_set_header HOST$host;

proxy_set_header X-Forwarded-Proto$scheme;

proxy_set_header X-Real-IP$remote_addr;

proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;

       }

这样配置完成之后,在浏览器访问时无法访问,百度之后得知,这是路径问题,因此对其进行修改

server {

listen80;

       listen [::]:80;

       server_name ctrl0118.top;

       client_max_body_size 1024m;

       location /blog {

               proxy_pass http://halo/;

proxy_set_header HOST$host;

proxy_set_header X-Forwarded-Proto$scheme;

proxy_set_header X-Real-IP$remote_addr;

proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;

       }

这样配置之后,浏览器可以访问了,看似配置文件只是在proxy_pass 配置反向代理的服务加了斜杠/,这里面有学问

这是因为加了斜杠/之后,在路由转发时不会将location中的参数绑定在url上,没加的话会在转发时将location的路径添加到url一起请求,所以导致浏览器无法访问

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容