Nginx转发URL重写和proxy_pass

时间:2018-05-09 16:16:16

标签: nginx mod-rewrite nginx-location proxypass nginx-reverse-proxy

我正在寻求nginx配置的帮助,同时将请求转发到另一个域。

代理方案:

https://service1.com/downloads -> https://service2.com/app/downloads 

https://service1.com/downloads?param1=a&param2=b -> https://service2.com/app/downloads?param1=a&param2=b

浏览器应始终具有左侧URL(service1)。 但是服务2端点是不同的,它有额外的参数' app'。

我没有考虑过应用程序'服务2端点中的param使用下面的config:

location /downloads {
    set $upstream_endpoint https://service2.com;
    proxy_pass $upstream_endpoint;
  }

但我需要帮助,当我想在调用service2端点时添加一些额外的参数(' app')。

我正在尝试重写和proxy_pass,但没有运气。 我启用了上游日志,但没有看到预期的上游URL

location /downloads {
  set $upstream_endpoint https://service2.com;
  proxy_pass $upstream_endpoint/app/$args;
}

先谢谢

1 个答案:

答案 0 :(得分:0)

试试这个,

location /downloads {
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;
    proxy_pass https://service2.com;
}