2013-10-27 133 views
1

我正在擴展託管環境以開始使用運行Apache的負載平衡Web服務器。到目前爲止,我一直在手動管理VirtualHosts,但現在我需要一種將VirtualHosts複製到多個其他Web服務器的方法。我有一些想法,我想知道人們是否可以評論每個人的利弊以幫助我做出決定。在負載均衡的服務器上創建/管理Apache VirtualHosts

  1. 手動創建新的VirtualHosts並創建腳本以跨服務器rsync配置文件。
  2. 我正在考慮使用Puppet來管理所有服務器上的軟件包。我可以將Puppet文件放在源代碼控制中,並用它在每臺服務器上創建VirtualHosts。
  3. 創建NFS共享並將apache VirtualHost目錄符號鏈接到那裏。

歡迎您提出意見,過去的經驗和輕微的批評。

回答

2

就我個人而言,我會避免使用NFS,因爲這是另一個單點故障(如果NFS服務器出現故障,您將無法啓動或可能對您的Web服務器執行任何操作)。

此外,rsync似乎是一種矯枉過正,並且Puppet也可能是一種矯枉過正,具體取決於您擁有多少臺服務器。

如果我是你,我只需將所有共享配置文件放在git或hg(Mercurial)存儲庫中,並通過簡單地將&更新來源同步。如果你需要它比git更集中,使用Subversion(注意,如果Subversion repo服務器關閉了,你的每個web服務器都將擁有它自己的所有東西的本地副本,你可以從中重建它)。

1

我已成功使用NFS共享以共享apache配置。這主要用於讀取模式,幾乎沒有寫入。你不會有任何性能問題。我在服務中遇到的問題開始順序(確保NFS在Apache之前啓動)。 NFS也可用於共享SSL會話數據,也可能是一些應用程序共享目錄(臨時圖像上傳,甚至可能是源代碼,如果應用程序需要像操作碼緩存那樣PHP並且不做愚蠢的事情)。

現在使用像puppet,salt-stack這樣的工具我們的負責人甚至更好,因爲您可以在任何配置更改後管理服務重新啓動/重新加載

+0

我決定使用Puppet並將所有配置細節存儲在Git倉庫中。主要原因是因爲我熟悉這種方法,NFS會引入另一個失敗點,而其他開發人員可能會覺得通過代碼管理虛擬主機會更加舒適。 – andrewvnice