You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IIS7向另一服务器的Nginx重定向/转发请求的配置问题

IIS7向另一服务器的Nginx重定向/转发请求的配置问题

看起来你遇到的问题主要来自两个关键细节:请求转发时的Host头不匹配,以及IIS规则的URL匹配可能和实际需求不符,我来一步步帮你排查和解决:

1. 核心问题:Nginx的Host头匹配失败

你现在能看到默认的Nginx欢迎页面,说明IIS确实把请求转发到了Nginx服务器,但Nginx没有匹配到你配置的dept.company.com server块,而是走了默认的server(因为请求的Host头不对)。

原因很简单:IIS默认转发请求到5.6.7.8时,请求的Host头是5.6.7.8,而你的Nginx server块只监听dept.company.com这个Host,所以Nginx会自动匹配到安装时自带的默认server,显示默认欢迎页。

解决方法二选一:

方法A:让IIS转发时保留原Host头

修改IIS重写规则的action部分,加上preserveHostHeader="true",这样转发到Nginx的请求会保留原Hostdept.company.com,Nginx就能精准匹配到你配置的server块:

<rule name="RewriteAppToNginx" stopProcessing="true">
  <match url="^app/(.*)" />
  <conditions logicalGrouping="MatchAll">
    <add input="{HTTP_HOST}" pattern="dept.company.com" />
  </conditions>
  <!-- 新增preserveHostHeader参数,保留原Host头 -->
  <action type="Rewrite" url="http://5.6.7.8/{R:1}" preserveHostHeader="true" />
</rule>
方法B:修改Nginx的server_name,兼容IP

如果不想改动IIS的Host头设置,可以在Nginx的server块里把5.6.7.8也加到server_name里,这样不管请求Host是域名还是IP,都会匹配到你配置的server块:

server {
        listen 80;
        listen [::]:80;

        root /var/www/dept.company.com/html;
        index index.html index.htm index.nginx-debian.html;

        # 新增服务器IP作为监听的Host
        server_name dept.company.com 5.6.7.8;

        location / {
                try_files $uri $uri/ =404;
        }
}

修改完Nginx配置后,记得执行sudo nginx -s reload让配置生效。

2. 检查IIS规则的URL匹配是否符合需求

你在问题里说要转发dept.company.com/app-1的请求,但当前IIS规则的match url是^app/(.*)——这个规则只能匹配以app/开头的路径(比如dept.company.com/app/xxx),完全无法匹配app-1(没有斜杠)。

如果你的实际需求是转发/app-1下的所有请求,需要把match url改成:

<match url="^app-1/(.*)" />

如果是要匹配所有以app开头的路径(比如app-1、app-2、app/xxx),可以调整为^app.*(.*)。

3. 最后验证步骤

  1. 确保IIS的URL重写模块已经正确安装(如果没装,规则根本不会生效)
  2. 重启IIS站点,让修改后的规则生效
  3. 在Nginx服务器的/var/www/dept.company.com/html下放一个测试文件,比如test.html
  4. 访问dept.company.com/app-1/test.html(对应你的规则路径),看是否能正常加载Nginx上的测试文件

如果还是有问题,可以查这两个地方:

  • 网络连通性:在IIS服务器上用curl http://5.6.7.8/test.html测试,确认能直接访问Nginx的文件
  • Nginx日志:查看/var/log/nginx/access.log和error.log,看请求的Host头和路径是什么,快速定位问题

备注:内容来源于stack exchange,提问作者Amruth Kiran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 12:28:10