首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NGINX proxy_pass或proxy_redirect

NGINX proxy_pass或proxy_redirect
EN

Stack Overflow用户
提问于 2020-01-22 03:32:15
回答 1查看 62.3K关注 0票数 27

在Nginx proxy_pass上需要帮助。

从外部Nginx将被击中如下:http://some-IP:8080/v2/platform/general/activity/plan?.

我的下游服务如下:http://another-IP:8080/activity/plan?.

我想摆脱

/v2/platform/general

从原来的公共网址打电话给我的下游服务,就像上面一样。

在Nginx中,如何将公共访问URL重定向到下游服务?

我试过这个:

代码语言:javascript
复制
location /v2/platform/general/ {
  rewrite ^/(.*) /$1 break;
  proxy_redirect off;
  proxy_pass http://another-IP:8080;
  proxy_set_header Host $host;

但这不管用,任何帮助都很感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-22 09:08:40

proxy_passproxy_redirect具有完全不同的功能。proxy_redirect指令只涉及在3xx状态消息中更改Location响应头。详情请参见重定向文档

rewrite语句只会阻止URI的进一步修改。需要删除这一行,否则它将阻止proxy_pass映射URI。见下文。

proxy_pass指令可以通过将URI值附加到proxy_pass值来映射URI (例如,从/v2/platform/general/foo/foo),该值与location值一起工作。详情请参见本文件

例如:

代码语言:javascript
复制
location /v2/platform/general/ {
    ...
    proxy_pass http://another-IP:8080/;
}

只有当上游服务器没有正确响应值another-IP:8080时,才需要设置主机头。

如果上游服务器生成具有不正确值的proxy_redirect头值的3xx状态响应,则可能需要添加一个或多个Location语句。

票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59852217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档