您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Nginx中怎么配置集群負載均衡,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
背景:
互聯(lián)網(wǎng)飛速發(fā)展的今天,大用戶量高并發(fā)已經成為互聯(lián)網(wǎng)的主體.怎樣能讓一個網(wǎng)站能夠承載幾萬個或幾十萬個用戶的持續(xù)訪問呢?這是一些中小網(wǎng)站急需解決的問題。用單機tomcat搭建的網(wǎng)站,在比較理想的狀態(tài)下能夠承受的并發(fā)訪問量在150到200左右。按照并發(fā)訪問量占總用戶數(shù)量的5%到10%這樣計算,單點tomcat網(wǎng)站的用戶人數(shù)在1500到4000左右。對于一個為全國范圍提供服務的網(wǎng)站顯然是不夠用的,為了解決這個問題引入了負載均衡方法。負載均衡就是一個web服務器解決不了的問題可以通過多個web服務器來平均分擔壓力來解決,并發(fā)過來的請求被平均分配到多個后臺web服務器來處理,這樣壓力就被分解開來。
負載均衡服務器分為兩種一種是通過硬件實現(xiàn)的負載均衡服務器,簡稱硬負載例如:f5。另一種是通過軟件來實現(xiàn)的負載均衡,簡稱軟負載:例如apache和nginx。硬負載和軟負載相比前者作用的網(wǎng)絡層次比較多可以作用到socket接口的數(shù)據(jù)鏈路層對發(fā)出的請求進行分組轉發(fā)但是價格成本比較貴,而軟負載作用的層次在http協(xié)議層之上可以對http請求進行分組轉發(fā)并且因為是開源的所以幾乎是0成本,并且阿里巴巴,京東等電商網(wǎng)站使用的都是Nginx服務器。
完成Nginx負載均衡,那么需要先來介紹Tomcat的安裝和配置,我們首先要來配置Tomcat完成集群的配置.
因為我們沒有多臺服務器運行Tomcat.那么我們可以模擬在一臺服務器上運行多個Tomcat程序.
1、使用Tomcat配置Tomcat集群
步驟一:
下載Tomcat
步驟二:
安裝和配置Tomcat:
直接將下載后的Tomcat解壓在本地磁盤:解壓兩個分別命名為tomcat1和tomcat2.
配置Tomcat環(huán)境變量
分別完成如下配置:(需要將tomcat帶有端口號的地方改成不同的端口即可.)分別打開兩個tomcat的conf下的server.xml
tomcat1/conf/server.xml
tomcat2/conf/server.xml
安裝:
將nginx-1.8.0.zip解壓包某個盤符下運行:目錄結構如下:
說明安裝成功!!!
關閉nginx需要使用:
相當于找到nginx進程kill。
nginx -s stop
重新加載配置文件:
nginx -s reload
可以不關閉nginx的情況下更新配置文件.
打開C:\nginx-1.8.0\conf\nginx.conf這個文件:
修改:C:\Windows\System32\drivers\etc\hosts文件:
***** 通過以上的配置我們已經可以通過訪問www.taoge.com訪問到不同的tomcat來分擔服務器端的壓力.請求負載過程中會話信息不能丟失.那么需要在多個tomcat中session需要共享.
* 配置Tomcat的session共享可以有三種解決方案:
第一種是以負載均衡服務器本身提供的session共享策略,每種服務期的配置是不一樣的并且nginx本身是沒有的。
第二種是利用web容器本身的session共享策略來配置共享。針對于weblogic這種方式還是靠普的。但是針對于tomcat這種方式存在很大的缺陷,主要因為是依靠廣播方式來實現(xiàn)的session復制,會浪費很多帶寬導致整個網(wǎng)絡反映緩慢。官網(wǎng)也建議這種方式最好不要超過4臺tomcat,具體的內容可參考/webapps/docs/cluster-howto.html里面有詳細的說明。下面是具體的配置過程
第三種是Tomcat集群+redis的Session共享配置方法.
在這里我們以第二種方式為例:
步驟一:修改server.xml文件,最簡單的集群配置只需要將節(jié)點中注釋掉的下面這句取消注釋即可:
Xml代碼:
<ClusterclassName="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
使用這樣方法配置的集群會將Session同步到所在網(wǎng)段上的所有配置了集群屬性的實例上(此處講所在網(wǎng)段可能不準確,是使用Membership的address和port來區(qū)分的。tomcat集群的實例如果在Membership配置中有相同的address和port值的tomcat被分到同一個集群里邊。他們的session是相互共享的,同一個session的集群被稱為一個cluster??梢耘渲枚鄠€cluster,但是cluster和cluster之間的session是不共享的)。也就是說如果該廣播地址下的所有Tomcat實例都會共享Session,那么假如有幾個互不相關的集群,就可能造成Session復制浪費,所以為了避免浪費就需要對節(jié)點多做點設置了,如下:
Xml代碼:
[html] view plain copy
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
</Channel>
</Cluster>
加了一個Channel,里面包了個Membership,咱們要關注的就是membership的port屬性和address屬性,不同的集群設置不同的port值或address值,從目前的使用來看,基本上是隔離開了。
步驟二:修改項目的web.xml文件:
web.xml文件的修改很簡單:只需要在節(jié)點中添加這個節(jié)點<distributable/>就可以了。
OK,有了這二步就實現(xiàn)了Tomcat的集群和Session的共享了。
關于Nginx中怎么配置集群負載均衡就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。