我在我的服务器上build立了一个nginx。 它接收所有请求并将它们传递给它后面的IIS服务器。 我的问题是,因为我的网站运行在端口2000有时它发送redirect到包含端口2000的nginx,之后,redirect用户将不会通过nginx。 我想在我的nginx中重写一个规则来获取所有redirect,并将端口设置为80,以便用户不直接进入IIS。 我也可以通过更改c#代码来解决这个问题,但我不想更改代码。
我不确定我能得到它,但我会试一试。
据我所知,你有一个正在运行的NGINX:80(也许:443)和A或B(不知道IIS是否在同一台机器上运行,尽pipe我不相信,因为用户似乎可以达到它直接)运行IIS侦听:20000。
如果A同时运行,那么你运气不好,你不能同时将NGINX和IIS绑定到同一个端口,所以你不能通过NGINX来完成。 但是,你可以使用你的防火墙来请求:20000不是从本地主机传递到80。 如果你想这样做,这也适用于第二种情况。
如果A在B运行IIS时运行NGINX,则始终可以设置告诉NGINX侦听:20000,并将其传递给IIS。
在任何情况下,如果IIS不能通过NGINX之外的其他方式访问,则应该有一个防火墙规则,防止从外部访问它。
把这个放在你的nginxconfiguration里:
port_in_redirect off;