Nginx反向代理和IIS

我使用nginx作为在IIS 7.5上运行的网站的反向代理。 网站绑定到sub-1.foo.bar 。 Nginx的configuration如下所示:

 server { listen 80; server_name sub.foo.bar; location / { proxy_pass http://sub-1.foo.bar; proxy_set_header Host $host; proxy_set_header X-Accel-Expires 0; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 

我想要做的是转发请求sub.foo.bar (Linux机器与sub-1.foo.barsub-1.foo.bar (与IIS和我的网站的Windows机器)。 但是会发生什么

  • 当我访问sub.foo.bar,我得到404页面
  • 当我直接访问sub-1.foo.bar我得到我的网站通常从IIS服务
  • nginx似乎正常转发请求到Windows机器
  • 当我访问sub.foo.bar时,我看不到来自IIS日志的任何传入请求
  • 当我在IIS上为sub.foo.bar添加绑定时,网站通常使用nginx进行代理

我将不胜感激关于我的设置可能是错误的任何想法。 谢谢!

尝试手动添加proxy_set_header主机“sub-1.foo.bar”

  • 当我在IIS上为sub.foo.bar添加绑定时,网站通常使用nginx进行代理

IIS必须意识到它应该回答名称为sub.foo.bar请求。 否则,它会将请求路由到默认网站。 你可以通过创build绑定来解决这个问题,或者通过创build/编辑你的网站来解决sub.foo.bar