Nginx+tomcat實現叢集和負載均衡

cbjcry發表於2015-02-06

Tomcat叢集方案

window環境Nginx+Tomcat叢集配置

nginx負載均衡多臺tomcat,session共享,session丟失

Windows下Nginx+Tomcat整合的安裝與配置(一)【精】(分類裡都值得一看)

Nginx配置檔案nginx.conf中文詳解(總結)

 Nginx配置upstream實現負載均衡

伺服器Nginx

 

start nginx
//啟動

nginx -t
//測試nginx配置是否正確

nginx -s stop
//結束nginx程式

nginx -s reload
//重啟nginx程式

 

 一. 配置負載均衡

 

自己嘗試的例子:


 

訪問:


 

發現請求被根據權重weight分發到兩個Tomcat中。其中一個Down掉後也會切換到另一個上。

 

註釋掉可使用#號也可使用down:

upstream localhost2 {          
 # server localhost:8080 weight=1;
   server localhost:28080 weight=2;
}
	
upstream localhost2 {          
   server localhost:8080 down;
   server localhost:28080 weight=2;
}

  

QC:

window下權重 weight設定為一樣時,切換無法成功,原因未知

 

配置多個:

server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
    }	
	server {
		listen  80;
		server_name t.test.com;
		charset utf-8;
		access_log   logs/hostzs.access.log;
				
		location / {
			proxy_pass http://127.0.0.1:9000;
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;
		}
	}
	
	server {
		listen  80;
		server_name www.test.com;
		charset utf-8;
		access_log   logs/hostzs.access.log;
		
		location / {
			proxy_pass http://127.0.0.1:8080;
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;
		}
	}

 

 二. 實現Session共享

 

多個tomcat要一起協同工作有幾種辦法,可以考慮的方案有以下幾個:

 

1. 使用tomcat自帶的cluster方式,多個tomcat間自動實時複製session資訊,配置起來很簡單。但這個方案的效率比較低,在大併發下表現並不好。

2. 利用nginx的基於訪問ip的hash路由策略,保證訪問的ip始終被路由到同一個tomcat上,這個配置更簡單。但如果應用是某一個區域網大量使用者同時登入,這樣負載均衡就沒什麼作用了。

3. 利用memcached把多個tomcat的session集中管理,前端在利用nginx負載均衡和動靜態資源分離,在兼顧系統水平擴充套件的同時又能保證較高的效能。

 

 

 

 

 

相關文章