当 URI 中没有尾部斜杠时,如何停止 nginx 301 自动重定向?(2)

当 URI 中没有尾部斜杠时,如何停止 nginx 301 自动重定向?(2)

我面临着与此处描述的类似的问题:当尾部斜杠不在 URI 中时,如何停止 nginx 301 自动重定向?

但在我的例子中,配置略有不同。我使用的是主持人标头值设置我要传递给上游 apache 的“虚拟域”。因此重定向应该绝不nginx 发生 - 期望的行为只是将请求原封不动地传递给上游 apache。我无法承受地点指令,因为它太不优雅和繁琐了。任何关于如何禁用 nginx 重定向的想法尽管使用代理密码

编辑:我想知道是否可以通过proxy_intercept_errors错误页面指令 + 一些处理程序。但不清楚处理程序中应该做什么。如果我只声明一个空的处理程序,nginx 会将请求传递到上游吗?或者我应该指定代理密码(以及所有其他相关选项,前提是我使用 SSL 进行上游连接)?

编辑:最终决定不使用“虚拟域”,而只是指定一个真实域(在 nginx 代理和上游 apache 中);同时在上游 apache 服务器上,我仅限制对特定 IP 地址的访问。了解如何处理 nginx 会很好,但根本没有时间。 :(

答案1

使用 proxy_redirect

位置 /用户/ { proxy_passhttp://user.example.com; 代理重定向 http://$proxy_host:9001 http://$host:80; }

位置 = /用户 { proxy_passhttp://login.example.com; 代理重定向 http://$proxy_host:9001 http://$host:80; }

谢谢,

相关内容