![nginx 代理传递子目录并保留 URL](https://linux22.com/image/733530/nginx%20%E4%BB%A3%E7%90%86%E4%BC%A0%E9%80%92%E5%AD%90%E7%9B%AE%E5%BD%95%E5%B9%B6%E4%BF%9D%E7%95%99%20URL.png)
我已经用 nginx 设置了两台服务器 -
- https://dev.imagecompressor.io网址:35.231.119.158
- https://imagecompressor.io位于 176.9.41.138
我正在尝试转发https://imagecompressor.io/site
至https://dev.imagecompressor.io/site
并希望保留该 URL https://imagecompressor.io/site
。
转发正常,但子目录/site/
似乎被省略并且 URL 也发生了变化。
176.9.41.138 上的 NGINX 配置
location /site/ {
proxy_pass http://dev.imagecompressor.io;
# error_log /var/log/nginx/site_error.log debug;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host imagecompressor.io;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
答案1
我认为你必须改变这一行:
proxy_pass http://dev.imagecompressor.io;
更改为:
proxy_pass http://dev.imagecompressor.io/site;
如果你想将 URL 更改为新 URL,请使用以下命令:
proxy_set_header Host http://dev.imagecompressor.io;
否则你可以使用它:
proxy_set_header Host $host;