简体   繁体   English

重写反向代理的URL

[英]Rewrite URL for reverse proxy

This is similar to nginx url rewrite for reverse proxy , but I don't know how I should apply that answer to my situation. 这类似于用于反向代理的nginx url重写 ,但是我不知道如何将这个答案应用于我的情况。

I am trying rewrite URLs for a reverse proxy, so that /pathA/something becomes /pathB/something when Nginx makes the request to the upstream server. 我正在尝试为反向代理重写URL,以便当Nginx向上游服务器发出请求时, /pathA/something变为/pathB/something

location ~ /pathA(/|$) {
    proxy_pass http://www.example.com;
    proxy_redirect off;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;

    rewrite ^/pathA(.*) /pathB$1;
}

I tried this, but I get an Nginx 404 page (and not the example.com 404 page). 我试过了,但是得到了Nginx 404页面(而不是 example.com 404页面)。

I needed to add redirect (302) or permanent (301): 我需要添加重定向(302)或永久(301):

location ~ /pathA(/|$) {
    proxy_pass http://www.example.com;
    proxy_redirect off;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;

    rewrite ^/pathA(.*) /pathB$1 permanent;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM