您好,登錄后才能下訂單哦!
小編給大家分享一下怎么為小公司部署實施Linux集群網站,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
其實在許多小公司和小企業里,尤其是牽涉到電子商務和電子廣告類的網站,他們的網站也要求作負載均衡高可用的Linux集群,但由于成本的制約,老板都會要求系統架構師設計的方案能夠用最少的錢實現這個要求,作為系統架構師的我們,應該如何實現這個要求呢?
首先是機房的選擇,如果公司有自己的機房那是***不過的了;如果沒有自己的機房,我建議大家放在BGP機房內托管,如果有選擇的話,***是選擇帶有硬件防火墻的機房,這樣在安全方面也有保障;另外,我們如何選擇服務器呢?在有了負載均衡高可用的集群環境后,我們完全可以自己組裝服務器,這樣在性價比上也是***的。像IBM和DELL的品牌服務器,雖然質量有保障,但價格往往是老板不能夠接受的。當然了,一切以穩定為前提和原則。
首先是負載均衡設備的選擇。我們可以有二種選擇,一種是通過硬件來進行進行,常見的硬件有比較昂貴的NetScaler、F5、Radware和Array等商用的負載均衡器,它的優點就是有專業的維護團隊來對這些服務進行維護、缺點就是花銷太大,所以對于規模較小的網絡服務來說暫時還沒有需要使用;另外一種就是類似于LVS/HAProxy、 Nginx的基于Linux的開源免費的負載均衡軟件策略,這些都是通過軟件級別來實現,所以費用非常低廉,小公司和小企業由于費用的問題,所以軟件級別的負載均衡是***選擇。
至于負載均衡高可用架構,我首推是Nginx/HAProxy+Keepalived的架構,這時很多朋友就有疑問,說你為什么不選擇基于LVS+Keepalived的集群方案呢?這是因為我們部署的網站一般都會有動靜分離、正則分發的需求,如果我們最前面選用LVS+Keepliaved的架構,那么我們至少又要在中間加一層二級負載均衡的機器,這樣比較耗機器,無形中也會增加整個網站的成本;另外,很多朋友都比較擔心的一個問題,說Nginx/HAProxy+Keepalived的穩定性不如LVS+Keepalived,這個其實是誤解;我們通過十幾個項目的成功實施,再加上幾年的觀察期,發現這些軟件級別的負載均衡器的穩定性確實很好,在高并發的情況下宕機的可能性微乎其微,而近段時間實施的一個商業網站,用的是HAProxy+Keepalived,在億/日高并發流量的沖擊下,HAProxy穩如磐石。LVS在性能方面是***的,尤其是后面的節點(如Web或MySQL數據庫服務器)超過10臺時,它的性能是***異的。而小公司的并發和流量一般不是特別大,大概一天持續在100萬/日之間,所以我這里也向大家推薦Nginx/HAProxy+Keepalived。
如果網站是放在IDC機房托管,而機房最前面也沒有硬件防火墻防護時,這時候大家盡量做好流量監控的工作,我一般會在主Nginx/HAProxy上安裝MRTG+Nload軟件來對流量進行監控,Nload可以對流量進行即時監控,它的安裝也是很簡單的,我們先安裝好RPMForege。RPMforge是Centos系統下的軟件倉庫,擁用4000多種的軟件包,被Centos社區認為是最安全也是最穩定的一個軟件倉庫,地址為http://pkgs.repoforge.org/rmpforge-release。這個安裝成功以后,我們可以通過命令yum -y install nload很輕松的安裝nload。輸入此命令后,nload軟件會很直觀的顯示流量的即時狀態,上半部分ncoming是進入網卡的流量,下半部分Outgoing是從這塊網卡出去的流量,每部分都有當前流量(Curr)、平均流量(Avg)、最小流量(Min)、***流量(Max)、總流量(Ttl)。由于此軟件比較直觀,我用它來取代之前的即時流量監控軟件iptraf,Nload的工作界面如下所示:
許多對集群感興趣的朋友經常問我,如果網站要部署負載均衡高可用的Linux集群方案,而公司又想用最節省成本的方式來實施的話,一般需要幾臺服務器呢?我的回答是四臺,即2+2架構,最前面是二臺Nginx/HAProxy+Keeplaived機器,后面是二臺配置比較好的Web機器,MySQL數據庫采用一主一從的方式,分別放在二臺Web機器上,監控的Nagios部署在從Nginx/HAProxy機器上,流量監控我一般放主Nginx/HAProxy,軟件采用的是MRTG+Nload的方式,服務器之間的數據同步我采用的是rsync+inotify的方法,當然更多時候,我采用的是純rsync方式,這樣是避免網站有大文件發生改動的時候會產生頻繁讀盤的麻煩;當然了,如果大家的公司對文件服務器有更高要求的時候(比如圖片類型的),我們可以考慮再增加二臺服務器,做成DRBD+Heartbeat+NFS的方式;如果有海量文件需要存儲的話,我們可以考慮用MFS,當然這樣也是比較耗機器的。
像類似以上的小公司集群架構里,我們是如何解決session同步的問題呢?我們可以采用Nginx的ip_hash和HAProxy的balance source機制,它們的原理比較類似,都會讓某一客戶機在相當長的一段時間內只訪問固定的后端的某臺真實的Web服務器,這樣會話就會得以保持,我們在網站頁面進行login的時候,就不會在二臺Web服務器之間跳來跳去了,自然也不會出現登陸一次后網站又提醒你沒有登陸,需要重新登陸的情況。
另外,小公司的Web服務器我們至少有二種選擇:一種是Apache,另一種是Nginx,在流量和并發不大的環境下,我們完全可以選擇Apache作為我們的Web服務器,雖然它的抗并發能力不高,但它的穩定性是***的,我的許多電子商務網站都是基于Apache;而大流量大并發的環境,我比較傾向于Nginx。
MySQL在這里我用的就是一主一從的設計,雖然很多朋友覺得這種設計比較簡單,但事實證明,它也最穩定的。我的電子商務網站也是采用這種架構,幾年下來,從沒有因為數據庫的故障發生過丟單現象,網站上線的前期階段,我們可以通過PHP程序,把后臺的查詢功能的入口選擇Slave機器,這樣可以大大減少主數據庫的壓力;另外,從MySQL機器并非僅僅只起一個備份和備機的作用,我們完全通過PHP程序將后臺的復雜查詢轉到從MySQL機器上。當然了,MySQL的主從復制狀態監控也是非常重要的,我一般是通過Nagios和SHELL腳本雙監控的方式。
以上是“怎么為小公司部署實施Linux集群網站”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。