如何使用 mod_cache 和 mod_proxybalance 為大型虛擬主機配置 apache
我有一個 IIS 伺服器場,它提供類似於域停放站點的東西,有數千個域分配給系統,並且內容動態生成。我需要一個負載平衡和記憶體解決方案。我的意圖是使用帶有 mod_cache 和 mod_proxybalance 的 Apache 2.2 來完成此任務。
我以前使用 Apache 的經驗相當有限,通常只處理少數基於名稱的虛擬主機。我以前從未使用它實現負載平衡或代理。
在研究配置時,我對一些基本的配置指令摸不著頭腦,我不確定如何為這個環境進行配置。特別是,apache 文件給出了關於未正確配置 ServerName 指令的可怕警告。在這種情況下,我不確定如何處理。
該網站不提供自己的內容,而是提供記憶體和代理的內容。我不能將每個域名都放入單獨的virutalhost 指令中。在這種情況下,是否需要像 ServerName 這樣的指令(或其他似乎需要域名的指令)?
編輯:
如果您想提出其他解決方案,我願意接受。到目前為止,已經提出了 ngnix,但由於它的代理程式碼僅使用 http 1.0 到後端伺服器,因此 ngnix 不能代理基於名稱的虛擬主機。我也不確定它是否可以記憶體基於名稱的虛擬主機。
Varnish 看起來像是一種可能的記憶體解決方案,但我真的很想要我可以在同一台伺服器上託管的東西,這樣我就不需要為每個功能使用多個伺服器。
如果你打算更換後端,mod_vhost_alias
否則,如果您只是將記憶體放在現有解決方案之前,Varnish 或 Squid 會更適合。Varnish 內置了對後端負載平衡、健康檢查等的支持。您還可以在前面執行一對 ipvs 伺服器來進行負載平衡,並為一對(或更多)Varnish 伺服器提供 100% 的正常執行時間。
基本上,每個域都需要一個
<VirtualHost *>
,每個域都有自己的ServerName
,並且ServerAlias
在每個域中,您將放置與代理和記憶體相關的指令。我建議您在一個公共目錄中為每個文件放置一個域,並將其全部包含在一個主 apache 文件中。現在大多數 linux 發行版都使用 Debian/Ubuntu 之類的目錄
sites-available
和sites-enabled
- 所有域都是可用目錄中的文件,並且只需連結到要啟動 的啟用目錄中。而且我知道這不是您所要求的,但是由於這只是域停放,您是否考慮過使用nginx?它是為這樣的事情而設計的(前端接收大熱門並提供靜態/記憶體/代理內容)。