詳解基于Centos7+Nginx+Tomcat8的負(fù)載均衡服務(wù)器的搭建
由于工作的需求,在使用中,需要搭建負(fù)載均衡,研究了Apache+Tomat負(fù)載均衡的方案,并且通過檢索相關(guān)的文章,進(jìn)行了比較發(fā)現(xiàn),Apache負(fù)載負(fù)載均衡在使用的效率上,遠(yuǎn)遠(yuǎn)不如Nginx的效率高,因此決定使用Nginx來進(jìn)行服務(wù)的搭建。最初YUM安裝了Nginx,但是不知道什么原因,Nginx的服務(wù)可以正常啟動(dòng),靜態(tài)頁(yè)面也可以正常訪問,但是就是無法正常的搭建虛擬主機(jī)和負(fù)載均衡。對(duì)引沒有深究原因,決定把他卸載,然后手動(dòng)安裝。
手動(dòng)安裝好Nginx后,一切正常,虛擬主機(jī),負(fù)載均衡的配置全部沒有任何問題。順利啟用,具體的配置文件如下:
在conf的nginx.conf的文件中加入了:include vhost/*.conf; 以引入vhost目錄下的所有的.conf文件,為了以后配置起來簡(jiǎn)單,當(dāng)然如果需要的話,也可以一個(gè)一個(gè)添加。
因?yàn)樽鲐?fù)載的服務(wù)為API服務(wù),在這里conf文件的名字就叫做api.xxx.com.conf,打開文件的配置如下:
在此沒有使用IP輪詢的方式,而使用的是usstream 的方式,具體這幾個(gè)方式有什么不同,大家可以百度或google一下相關(guān)的介紹。需要注意的是proxy_pass,在此配置的為upstream 的名字,其它的不允許使用,如果直接配置IP地址,則不會(huì)實(shí)現(xiàn)負(fù)載均衡。
其中 weight表示的權(quán)重,數(shù)越大,權(quán)重越高,分配到的機(jī)會(huì)越大, backup表示的是熱備服務(wù)器,即在前兩個(gè)負(fù)載都出現(xiàn)問題的時(shí)候,熱備服務(wù)器就會(huì)自動(dòng)承擔(dān)這些訪問。
至此Nginx負(fù)載均衡配置器配置完成,但是因?yàn)樯婕暗截?fù)載之后,若是普通的網(wǎng)址,在訪問的時(shí)候,就會(huì)再現(xiàn)Session丟失的情況,因此這個(gè)時(shí)候,就要處理session 丟失的問題,要處理此問題,有多個(gè)解決方案,一個(gè)是使用Cookies代理,另外 一個(gè)實(shí)現(xiàn)Session的共享,在此使用的是Session的共享,在實(shí)現(xiàn)共享,需要在Tomcat進(jìn)行相關(guān)的配置,要實(shí)現(xiàn)這個(gè)需求,在此配置的Session的共享服務(wù)器為Redis內(nèi)存服務(wù),主要是為了保證數(shù)據(jù)的高效讀取與存儲(chǔ),在使用Redis進(jìn)行Session共享,必須要添加以下幾個(gè)名:
這個(gè)幾個(gè)包,支持Tomcat8沒有任何問題,其它版本的具體支持情況如何,沒有進(jìn)行相關(guān)的測(cè)試。
然后修改Tomcat中的配置文件:
在此看到的10.0.0.x的地址,全部是內(nèi)網(wǎng)完成的, 外網(wǎng)不通,只有負(fù)責(zé)負(fù)載的服務(wù)器才直接連接的外網(wǎng)。
在這個(gè)時(shí)候,可以順利啟動(dòng)tomcat服務(wù)器,與Nginx服務(wù)器了,但是在此之前,必須要先啟動(dòng)Nginx服務(wù)器,否則Tomcat可能會(huì)出現(xiàn)啟動(dòng)失敗的情況。Nginx服務(wù)可以順利啟動(dòng)
三處配置如下:
nginx.conf中添加的引用內(nèi)容
include vhost/*.conf;
負(fù)載均衡配置:
upstream api.xxx.com { server 10.0.0.12:8080 weight=5; server 10.0.0.15:8081 weight=5 ; server 10.0.0.16:8080 weight=5 backup; } server { listen 80; server_name api.xxx.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-Ip $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://api.xxx.com; } }
Tomcat配置
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" /> <Manager className="com.radiadesign.catalina.session.RedisSessionManager" host="10.0.0.16" port="10000" database="0" maxInactiveInterval="60" />
關(guān)于怎么安裝Tomcat,Nginx,Redis的不是這個(gè)的討論范圍。
如果需要請(qǐng)查看
詳解CentOS7.0安裝與配置Tomcat-7
centos7安裝nginx的兩種方法介紹
詳解在Redis在Centos7上的安裝部署
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持本站。
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。