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一起请求,所以导致浏览器无法访问

你可能感兴趣的:(Nginx配置proxy_pass转发的/路径问题)