如何更改 nginx 接收的重定向端口?

如何更改 nginx 接收的重定向端口?

我已经在我的服务器上设置了一个 nginx。它接收所有请求并将它们传递给它后面的 IIS 服务器。我的问题是,由于我的站点在端口 2000 上运行,有时它会向包含端口 2000 的 nginx 发送重定向,并且重定向之后用户将不会通过 nginx。我想在我的 nginx 中重写一条规则以获取所有重定向并将端口设置为 80,这样用户就不会直接进入 IIS。我也可以通过更改 c# 代码来解决这个问题,但我不想更改代码。

答案1

我不确定我是否明白,但我会尝试一下。

据我了解,您有一个运行 NGINX 的 A,监听在:80(可能是:443),并且 A 或 B(不知道 IIS 是否在同一台机器上运行,但我相信不是,因为用户似乎能够直接访问它)运行 IIS,监听在:20000。

如果 A 同时运行这两个程序,那么您就没那么幸运了,因为您无法让 NGINX 和 IIS 绑定到同一个端口,因此您无法通过 NGINX 实现这一点。但是,您可以使用防火墙将发送到 :20000 的请求(不是来自 localhost)传递到 :80。如果您愿意,这在第二种情况下也有效。

如果 A 运行 NGINX 而 B 运行 IIS,您可以始终设置告诉 NGINX 也监听 :20000 并将其传递给 IIS。

无论如何,如果 IIS 不能通过 NGINX 以外的其他方式访问,您应该设置防火墙规则来阻止从外部访问。

答案2

将其放入你的 nginx 配置中:

port_in_redirect off;

http://nginx.org/en/docs/http/ngx_http_core_module.html

相关内容