在 Nginx 中使用 proxy_pass 時無法登入或執行任何操作

在 Nginx 中使用 proxy_pass 時無法登入或執行任何操作

在我之前的問題中nginx 將除特定檔案和子目錄之外的所有內容解析(指向)不同的 ip我詢問如何解析我的白標網站及其頁面到不同的 IP,但在我的伺服器上保留一些子資料夾和檔案以供載入。事實證明這很簡單,最終的解決方案是這樣的:

location /robots.txt {
   alias {DOCROOT};
}
server_name {SERVERNAME};
location ~ /\.php$ {
    proxy_pass  10.10.10.10 <== whitelabel ip;
    proxy_set_header Host            {SERVERNAME};
    proxy_set_header X-Forwarded-For myaccount.whitelabelsite.com;
    proxy_redirect off;
    proxy_set_header Connection "Keep-Alive";
    proxy_buffering off;
}

因此,在這裡,我從我的網域下的白標網站加載所有內容,但仍保留 robots.txt 以從我的主機和其他一些文件加載。

現在的問題是,我使用這種方法無法登入白標網站上的帳戶。

所以{SERVERNAME}指令基本上是我的域名mydomain.com,當我嘗試登入mydomain.com/aff/panel它打開頁面時,它不會輸出任何錯誤,只是刷新頁面而不執行任何操作。如果有人想要預訂或發送電子郵件表格,情況也是如此。它打開頁面但實際上不執行任何操作。

當我使用 DNS 重定向時一切正常,但現在不行了。我是否缺少一些代理資訊或標題發布/獲取操作轉發到或從白標籤?

答案1

如果主機設定不正確,「whitelabelsite.com」上的後端應用程式可能無法正常運作。將 Host 標頭設定為您要代理的主機名,而不是您自己的主機名稱。

proxy_set_header Host myaccount.whitelabelsite.com

你確定你需要嗎proxy_redirect off?這可能會阻止後端網站發送重定向。

另外,不太可能與問題相關,但X-Forwarded-For應該是客戶端 IP 位址。 nginx 有一個特殊的變數來正確加入 ip。

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

在沒有獲得完整細節的情況下,這是一些猜測,希望它有所幫助。

相關內容