2個域名,2個證書,1個公共IP,1個nginx伺服器

2個域名,2個證書,1個公共IP,1個nginx伺服器

我希望你能幫助我,因為我不明白為什麼會發生這種情況。我有以下 2 個網域:

  • 阿爾法網
  • beta.com

他們都指向同一個伺服器IP:

  • xxxx

我在這台伺服器上運行著一個 nginx。在我的防火牆上,我將連接埠 80 和 443 轉送到該伺服器的內部 IP;

  • 192.168.1.2

這兩個網域都有自己的憑證。

以下是這兩個網域的伺服器配置:

問題:這裡的問題是,當我訪問 alpha.com 時,伺服器將我重定向到 http.s://alpha.com 並加載 alpha.com 的內容,到目前為止一切都很好。當我在瀏覽器上開啟新分頁並輸入 beta.com 時,瀏覽器上的 URL 會變更為 http.s://beta.com 但會載入 alpha.com 的內容。

我該如何告訴 nginx 根據在瀏覽器中輸入的 URL 為每個網域提供正確的目錄,並且仍然保留 https?

謝謝。

答案1

您的兩個虛擬主機都指向環回位址上的相同連接埠。

你在聽什麼http://127.0.0.1:2368

您需要將該服務設定為偵聽兩個不同的連接埠並將每個 nginx 虛擬主機代理到其自己的唯一連接埠。

答案2

看一下這篇關於數位海洋的文章。

可以透過伺服器名稱識別(SNI)。這是 SSL 的相對較新的補充。以前不可能兩個(或多個)不同的網域使用同一個IP位址進行https存取。

答案3

實際上我發現了自己的錯誤,我在其中一個網域上運行了 Ghost 部落格平台,在另一個網域上運行了 WordPress。我透過從 WordPress 網站的 nginx 設定檔中刪除以下程式碼解決了該問題。

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header HOST $http_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:2368;

僅供參考,@MyNameIsBoring 提到的端口2368 是Ghost 使用的端口,因此我設置了反向代理以在80 和443 上提供伺服器。都開始工作他們應該。

相關內容