需要有关 Nginx proxy_pass 的帮助。
来自 Nginx 外部的 URL 会像这样被点击: http://some-IP:8080/v2/platform/general/activity/plan ?.....
我的下游服务如下所示: http://another-IP:8080/activity/plan ?...
我想摆脱
/v2/平台/通用
从原始公共 url 并像上面一样调用我的下游服务。
在 Nginx 中,如何将公共访问 URL 重定向到下游服务?
我试过这个:
location /v2/platform/general/ {
rewrite ^/(.*) /$1 break;
proxy_redirect off;
proxy_pass http://another-IP:8080;
proxy_set_header Host $host;
Run Code Online (Sandbox Code Playgroud)
但它没有用,任何帮助表示赞赏。
Ric*_*ith 17
proxy_pass并且proxy_redirect具有完全不同的功能。该proxy_redirect指令仅涉及更改Location3xx 状态消息中的响应头。有关详细信息,请参阅此文档。
您的rewrite语句除了阻止进一步修改 URI 之外什么也不做。此行需要删除,否则将禁止proxy_pass映射 URI。见下文。
该proxy_pass指令可以通过将 URI 值附加到值来映射 URI(例如 from /v2/platform/general/footo /foo),该proxy_pass值与该location值结合使用。有关详细信息,请参阅此文档。
例如:
location /v2/platform/general/ {
...
proxy_pass http://another-IP:8080/;
}
Run Code Online (Sandbox Code Playgroud)
只有当您的上游服务器没有正确响应该值时,您才可能需要设置 Host 标头another-IP:8080。
proxy_redirect如果您的上游服务器生成 3xx 状态响应,并且Location标头值的值不正确,您可能需要添加一个或多个语句。
| 归档时间: |
|
| 查看次数: |
23154 次 |
| 最近记录: |