如何設定 Apache2 即使在某個特定 IP 上偵聽失敗但在其他 IP 上偵聽成功時也能啟動?

如何設定 Apache2 即使在某個特定 IP 上偵聽失敗但在其他 IP 上偵聽成功時也能啟動?

我想設定 Apache2(在 Ubuntu 14.04 上),使其在啟動時啟動並偵聽 127.0.0.1:80 和 192.150.0.1:80。

為此,我有以下幾行/etc/apache2/ports.conf

Listen 127.0.0.1:80
Listen 192.168.150.1:80

和 VirtualHost 指令的開始標記:

<VirtualHost 127.0.0.1:80 192.168.150.1:80> 

經過這些編輯和運作後,一切正常sudo apache2ctl restart

但後一個 IP 在啟動時未綁定到伺服器上的活動接口,因此 Apache 無法在下次啟動時啟動。

我找到了這裡

當嘗試綁定到主機系統上不存在的 IP 和連接埠時,apache httpd 將無法啟動

如果未能綁定到後一個 IP 就是所有錯誤的原因,我希望 apache 不會自殺。是否有使用 Apache 設定指令的解決方案:

  • 即使第二個位址未綁定到任何接口,Apache也會在引導時成功啟動。
  • 要求我只打開介面並重新啟動 apache 來監聽這兩個位址。

我不想/etc/apache2/ports.conf每次打開介面後都手動編輯。

答案1

這在具有多個 IP 上的多個站點的 HA 設定中非常常見。 IP 在 HA 中的裝置之間共用。

簡短的回答,你不能。如果裝置上沒有所有 IP,Apache 將不會啟動。

我們的答案是在故障轉移過程中寫入 apache 重啟,確保發生故障轉移時 apache 服務能夠重新啟動。

相關內容