hugh 的个人博客

Everyday is a new day

nginx proxy_redirect修改请求地址

前提

通常我们会使用nginx proxy相关设置来做反向代理

配置如下

一般情况下,我们只需要把对应开头的请求转发到相关服务即可, 如下

  location ^~/xxpath/ {
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:8084/;
        }

但,有时候,我们需要变更请求地址, 如
http://a.com/a/b/xxx
转发到
http://b.com/b/xxx
路径中的/a需要去掉, 这时候可以使用proxy_redirect

proxy_redirect 包括如下三种选项

proxy_redirect default;
proxy_redirect off;
proxy_redirect redirect replacement;

default的配置等同于替换省略, 如下

location /one/ {
    proxy_pass     http://upstream:port/two/;
     proxy_redirect default;
}

location /one/ {
   proxy_pass     http://upstream:port/two/;
    proxy_redirect http://upstream:port/two/ /one/;
}

详情参考 nginx


标题:nginx proxy_redirect修改请求地址
作者:hugh0524
地址:https://blog.uproject.cn/articles/2020/06/03/1591186889508.html