首頁  >  文章  >  運維  >  基於Centos7+Nginx+Tomcat8的負載平衡伺服器如何搭建

基於Centos7+Nginx+Tomcat8的負載平衡伺服器如何搭建

PHPz
PHPz轉載
2023-05-26 11:43:131656瀏覽

手動安裝好nginx後,一切正常,虛擬主機,負載平衡的設定全部沒有任何問題。順利啟用,具體的設定檔如下:

在conf的nginx.conf的檔案中加入了:include vhost/*.conf;  以引入vhost目錄下的所有的.conf文件,為了以後設定起來簡單,當然如果需要的話,也可以一個一個添加。

因為做負載的服務為api服務,在這裡conf檔案的名字就叫做api.xxx.com.conf,開啟檔案的設定如下:

基於Centos7+Nginx+Tomcat8的負載平衡伺服器如何搭建

在此沒有使用ip輪詢的方式,而使用的是usstream 的方式,具體這幾個方式有什麼不同,大家可以百度或google一下相關的介紹。需要注意的是proxy_pass,在此配置的為upstream 的名字,其它的不允許使用,如果直接配置ip位址,則不會實現負載平衡。

其中weight表示的權重,數越大,權重越高,分配到的機會越大, backup表示的是熱備伺服器,也就是在前兩個負載都出現問題的時候,熱備伺服器就會自動承擔這些訪問。

至此nginx負載平衡配置器配置完成,但是因為涉及到負載之後,若是普通的網址,在訪問的時候,就會再現session丟失的情況,因此這個時候,就要處理session 丟失的問題,要處理此問題,有多個解決方案,一個是使用cookies代理,另外一個實現session的共享,在此使用的是session的共享,在實現共享,需要在tomcat進行相關的配置,要實現這個需求,在此配置的session的共享伺服器為redis內存服務,主要是為了保證數據的高效讀取與存儲,在使用redis進行session共享,必須要添加以下幾個名:

基於Centos7+Nginx+Tomcat8的負載平衡伺服器如何搭建這個幾個包,支援tomcat8沒有任何問題,其它版本的具體支援情況如何,沒有進行相關的測試。

然後修改tomcat中的設定檔:

 基於Centos7+Nginx+Tomcat8的負載平衡伺服器如何搭建

  在此看到的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" />

以上是基於Centos7+Nginx+Tomcat8的負載平衡伺服器如何搭建的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除