在Nginx proxy_pass上需要帮助。
从外部Nginx将被击中如下:http://some-IP:8080/v2/platform/general/activity/plan?.
我的下游服务如下:http://another-IP:8080/activity/plan?.
我想摆脱
/v2/platform/general
从原来的公共网址打电话给我的下游服务,就像上面一样。
在Nginx中,如何将公共访问URL重定向到下游服务?
我试过这个:
location /v2/platform/general/ {
rewrite ^/(.*) /$1 break;
proxy_redirect off;
proxy_pass http://another-IP:8080;
proxy_set_header Host $host;但这不管用,任何帮助都很感激。
发布于 2020-01-22 09:08:40
proxy_pass和proxy_redirect具有完全不同的功能。proxy_redirect指令只涉及在3xx状态消息中更改Location响应头。详情请参见重定向文档。
rewrite语句只会阻止URI的进一步修改。需要删除这一行,否则它将阻止proxy_pass映射URI。见下文。
proxy_pass指令可以通过将URI值附加到proxy_pass值来映射URI (例如,从/v2/platform/general/foo到/foo),该值与location值一起工作。详情请参见本文件。
例如:
location /v2/platform/general/ {
...
proxy_pass http://another-IP:8080/;
}只有当上游服务器没有正确响应值another-IP:8080时,才需要设置主机头。
如果上游服务器生成具有不正确值的proxy_redirect头值的3xx状态响应,则可能需要添加一个或多个Location语句。
https://stackoverflow.com/questions/59852217
复制相似问题