您好,登錄后才能下訂單哦!
由于工作的需求,在使用中,需要搭建負載均衡,研究了Apache+Tomat負載均衡的方案,并且通過檢索相關的文章,進行了比較發現,Apache負載負載均衡在使用的效率上,遠遠不如Nginx的效率高,因此決定使用Nginx來進行服務的搭建。最初YUM安裝了Nginx,但是不知道什么原因,Nginx的服務可以正常啟動,靜態頁面也可以正常訪問,但是就是無法正常的搭建虛擬主機和負載均衡。對引沒有深究原因,決定把他卸載,然后手動安裝。
手動安裝好Nginx后,一切正常,虛擬主機,負載均衡的配置全部沒有任何問題。順利啟用,具體的配置文件如下:
在conf的nginx.conf的文件中加入了:include vhost/*.conf; 以引入vhost目錄下的所有的.conf文件,為了以后配置起來簡單,當然如果需要的話,也可以一個一個添加。
因為做負載的服務為API服務,在這里conf文件的名字就叫做api.xxx.com.conf,打開文件的配置如下:
在此沒有使用IP輪詢的方式,而使用的是usstream 的方式,具體這幾個方式有什么不同,大家可以百度或google一下相關的介紹。需要注意的是proxy_pass,在此配置的為upstream 的名字,其它的不允許使用,如果直接配置IP地址,則不會實現負載均衡。
其中 weight表示的權重,數越大,權重越高,分配到的機會越大, backup表示的是熱備服務器,即在前兩個負載都出現問題的時候,熱備服務器就會自動承擔這些訪問。
至此Nginx負載均衡配置器配置完成,但是因為涉及到負載之后,若是普通的網址,在訪問的時候,就會再現Session丟失的情況,因此這個時候,就要處理session 丟失的問題,要處理此問題,有多個解決方案,一個是使用Cookies代理,另外 一個實現Session的共享,在此使用的是Session的共享,在實現共享,需要在Tomcat進行相關的配置,要實現這個需求,在此配置的Session的共享服務器為Redis內存服務,主要是為了保證數據的高效讀取與存儲,在使用Redis進行Session共享,必須要添加以下幾個名:
這個幾個包,支持Tomcat8沒有任何問題,其它版本的具體支持情況如何,沒有進行相關的測試。
然后修改Tomcat中的配置文件:
在此看到的10.0.0.x的地址,全部是內網完成的, 外網不通,只有負責負載的服務器才直接連接的外網。
在這個時候,可以順利啟動tomcat服務器,與Nginx服務器了,但是在此之前,必須要先啟動Nginx服務器,否則Tomcat可能會出現啟動失敗的情況。Nginx服務可以順利啟動
三處配置如下:
nginx.conf中添加的引用內容
include vhost/*.conf;
負載均衡配置:
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" />
關于怎么安裝Tomcat,Nginx,Redis的不是這個的討論范圍。
如果需要請查看
詳解CentOS7.0安裝與配置Tomcat-7
centos7安裝nginx的兩種方法介紹
詳解在Redis在Centos7上的安裝部署
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。