是haproxy apache的
壹、lvs的優點:1,抗負載能力強,因為lvs的工作模式邏輯非常簡單,只工作在網絡的第四層進行請求分發,沒有流量,所以在效率上基本不用考慮太多。在我的lvs中,只有壹個問題:均衡器在最高並發的短時間內丟包,分析為網絡問題,即網卡或linux2.4內核的承載能力已經達到上限,內存和cpu基本沒有消耗。2.可配置性低,這通常是壹大缺點,但也是壹大優點。由於可配置的選項不多,除了添加或刪除服務器,不需要經常接觸,大大降低了人為出錯的幾率。3.工作穩定。因為抗負荷能力強,所以穩定性高也就順理成章了。另外各種LV都有完整的雙機熱備方案,不用擔心均衡器本身會有什麽問題。如果節點失效,lvs會自動判斷,所以整個系統非常穩定。4,無流量,如上所述。Lvs只是分發請求,流量不會自己出去,可以用來做壹些線路分流。沒有流量,同時保持均衡器的IO性能不受大流量的影響。5.基本上可以支持所有應用。因為lvs工作在第4層,所以可以均衡幾乎所有應用的負載,包括http、數據庫、聊天室等等。此外,lvs不能完全區分節點故障。比如在wlc分發模式下,集群中有壹個節點沒有配置VIP,會導致整個集群不可用。這時候使用wrr分發模式會損失壹臺機器。目前這個問題還在進壹步測試中。所以用lvs的時候還是小心壹點比較好。第二,nginx和lvs的對比表明,nginx工作在網絡的第7層,因此可以對http應用本身做出導流策略,比如域名和目錄結構。相比之下,lvs沒有這樣的功能,所以nginx可以用的場合遠比lvs多。但是nginx的這些有用的功能讓它比lvs更具有可調節性,所以經常需要接觸。從lvs的第二個優勢來看,如果妳接觸的多,人的問題出現的概率會更大。2.nginx對網絡的依賴性較小。理論上只要ping正常,網頁訪問正常,nginx就可以連接。同時nginx可以區分內網和外網。如果是既有內網又有外網的節點,就相當於單機有備份線。Lvs更依賴於網絡環境。目前服務器在同壹個網段且lvs采用直接方式分流,效果可以保證。另外需要註意的是,lvs做視覺ip需要向托管人申請至少多壹個IP,用自己的IP做VIP似乎是不可能的。要成為壹名優秀的LVS管理員,妳真的必須跟進並學習很多關於網絡通信的知識,這可不像HTTP那麽簡單。3.nginx安裝配置相對簡單,測試起來也很方便,因為基本上可以用日誌把錯誤打印出來。安裝、配置和測試lvs需要很長時間,因為如上所述,lvs非常依賴網絡。很多時候配置LVS失敗是因為網絡問題而不是配置問題,解決問題會麻煩很多。4.nginx也能承受高負載,很穩定,但是負載和穩定lvs有幾個層次的區別:nginx處理所有流量,所以受機器IO和配置限制;bug本身還是不可避免的;Nginx沒有現成的雙機熱備方案,單機運行還是有風險的,單機上的壹切都不好說。5.nginx可以根據服務器的處理情況檢測出網頁返回的狀態碼、超時等服務器內部故障,並會重新向另壹個節點提交返回錯誤的請求。目前lvs中的ldirectd也可以支持對服務器內部情況的監控,但是lvs的原理使得無法重發請求。例如,用戶正在上傳文件,而處理上傳的節點在上傳過程中失敗了。nginx會將上傳切換到另壹臺服務器重新處理,lvs會直接斷開連接。如果上傳了大文件或重要文件,用戶可能會感到惱火。6.nginx對請求的異步處理可以幫助節點服務器降低負載。如果用apache直接對外服務,那麽在窄帶鏈路多的情況下,apache服務器會占用大量內存,但不會釋放。如果使用nginx作為apache代理,這些窄帶鏈接會被nginx阻塞,apache不會積累太多請求,從而減少內存占用。用squid也是壹樣的效果,即使squid本身配置了不緩存,對apache還是很有幫助的。沒有這些功能,lvs是無法比較的。7.nginx可以支持http和email(email的功能估計人用的比較少),lvs在這方面會比nginx支持更多的應用。在使用中,前端壹般采用的策略應該是lvs,也就是DNS的方向應該是lvs均衡器,lvs的優勢使其非常適合這個任務。重要的ip地址,比如數據庫的ip和webservice服務器的ip,最好由lvs來管理。隨著時間的推移,這些ip地址的使用範圍會越來越廣,如果換了ip,故障也會隨之而來。所以把這些重要的IP交給lvs托管是最安全的。這樣做的唯壹缺點是需要更多的VIP。Nginx可以用作lvs節點機,可以利用它的功能和性能。當然,魷魚也可以直接用這個級別。squid在功能和性能上比nginx弱很多。Nginx也可以作為中層代理。在這個級別上,nginx基本沒有對手,唯壹能撼動nginx的只有lighttpd。但是lighttpd還沒有做到nginx的完整功能,配置也沒有那麽清晰易讀。另外,中層代理的IP也很重要,所以中層代理有壹個VIP和lvs是最完美的解決方案。Nginx也可以用作靜態web服務器,但這超出了本文的範圍。我簡單提壹下。具體應用還得具體分析。如果是比較小的網站(日PV