nginx proxy_pass后的url加和不加反斜杠‘/’的区别
nginx 代理配置完之后, nginx 配置proxy_pass
,需要注意转发的路径配置问题.
在 nginx 中配置 proxy_pass 时,当在后面的url
加上了'/'
,相当于是绝对根路径,则 nginx 不会把 location
中匹配的路径部分代理走;如果没有'/'
,则会把匹配的路径部分也给代理走。
proxy_pass 配置说明
不带反斜杠'/'
1 | location /test/ |
上面两种配置,区别只在于proxy_pass
转发的路径后是否带'/'
.
针对情况1,如果访问url = http://server/test/index.php
,则被nginx
代理后,请求路径会便问http://proxy_pass/test/index.php
,将test/
作为根路径,请求test/
路径下的资源.
针对情况2,如果访问url = http://server/test/index.php
,则被nginx
代理后,请求路径会变为http://proxy_pass/index.php
,直接访问server的根资源.
proxy_pass 配置实例
第一种、 url带斜杠
1 | location /proxy/ { |
访问地址http://server/proxy/test.html
代理到URL:http://127.0.0.1/test.html
第二种(相对于第一种,最后少一个 ‘/’ )
1 | location /proxy/ { |
访问地址http://server/proxy/test.html
代理到URL:http://127.0.0.1/proxy/test.html
第三种
1 | location /proxy/ { |
访问地址http://server/proxy/test.html
代理到URL:http://127.0.0.1/aaa/test.html
第四种(相对于第三种,最后少一个 ‘/’ )
1 | location /proxy/ { |
访问地址http://server/proxy/test.html
代理到URL:http://127.0.0.1/aaatest.html