需要有关 Nginx proxy_pass 的帮助。
从外部 Nginx 的 URL 将被打这样的:http://some-IP:8080/v2/platform/general/activity/plan?.....
我的下游服务看起来像这样:http://another-IP:8080/activity/plan?...
我想摆脱
/ v2 / 平台 / 常规
从原来的公共网址,并调用我的下游服务像上面。
在 Nginx 中,如何将公共访问 URL 重定向到下游服务?
我试过这个:
location /v2/platform/general/ {
rewrite ^/(.*) /$1 break;
proxy_redirect off;
proxy_pass http://another-IP:8080;
proxy_set_header Host $host;
但它没有工作,任何帮助赞赏。
proxy_pass
和proxy_redirect
具有完全不同的功能。proxy_redirect
指令仅涉及更改 3xx 状态消息中的Location
响应标头。有关详细信息,请参阅the NGINX proxy_redirect docs。
您的rewrite
语句除了阻止 URI 的进一步修改之外什么也不做。这一行需要删除,否则它将禁止proxy_pass
映射 URI。见下文。
proxy_pass
指令可以通过将 URI 值附加到proxy_pass
值来映射 URI(例如从/v2/platform/general/foo
到/foo
),该值与location
值结合使用。有关详细信息,请参阅this document。
例如:
location /v2/platform/general/ {
...
proxy_pass http://another-IP:8080/;
}
仅当上游服务器未正确响应值another-IP:8080
时,才需要设置 Host 标头。
如果上游服务器生成的 3xx 状态响应的Location
标头值的值不正确,则可能需要添加一个或多个proxy_redirect
语句。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(27条)