
我使用 nginx 作為在 IIS 7.5 上運行的網站的反向代理。網站綁定sub-1.foo.bar
。 Nginx 設定如下所示:
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
(帶有 nginx 的 Linux 機器)的請求轉送到sub-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 正常代理
如果我對我的設置可能有問題有任何想法,我將不勝感激。謝謝!
答案1
嘗試手動新增 proxy_set_header Host "sub-1.foo.bar"
答案2
- 當我在 IIS 上新增 sub.foo.bar 的綁定時,網站會透過 nginx 正常代理
IIS 必須知道它應該回答對該名稱的請求sub.foo.bar
。否則,它將請求路由到預設網站。您可以透過建立綁定或建立/編輯您的網站來回答 來解決此問題sub.foo.bar
。