Proxy:NGINX proxy_pass或proxy_redirect

需要有关 Nginx proxy_pass 的帮助。

需要有关 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;

但它没有工作,任何帮助赞赏。

35

proxy_passproxy_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语句。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(553)
医保核实程序:Linux内核实时调试是如何完成的 使用了哪些工具
上一篇
服务器安全问题:Nginx处理 500内部服务器错误安全问题
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(27条)