官方文檔 http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass
proxy_pass 末尾是否加 /
的區別
1. 末尾有’/’
location /proxy/ {
proxy_pass http://127.0.0.1:8080/; #末尾有'/'
}
proxy_pass 地址末尾加 /
,則代理路徑將不包含location匹配的部分
- 訪問 localhost:80/proxy/index.html 時,代理到 127.0.0.1:8080/index.html
2. 末尾無’/’
location /proxy/ {
proxy_pass http://127.0.0.1:8080; #末尾無'/'
}
proxy_pass 地址末尾不加 /
,則代理路徑將包含location匹配的部分
- 訪問 localhost:80/proxy/index.html 時,代理到 127.0.0.1:8080/proxy/index.html
擴展:通過 rewrite 配置實現末尾不加 /
和 加 /
的代理路徑一致
location /proxy/ {
proxy_pass http://127.0.0.1:8080; #末尾無'/'
rewrite '^/proxy(.*)$' $1 break;
}
- 訪問 localhost:80/proxy/index.html 時,代理到 127.0.0.1:8080/index.html
end