Nginx構建Tomcat集羣

1. Nginx構建Tomcat集羣Demo

通過Nginx的upstream模塊構建三臺Tomcat組成的集羣,首先在nginx.conf文件中添加如下內容:

upstream youpin-server {
	server 192.168.1.173:8080;
	server 192.168.1.174:8080;
	server 192.168.1.175:8080;
}
server {
	listen 80;
	server_name www.youpin.com;
	location / {
		proxy_pass http://youpin-server
	}
}
  • youpin-server是個字符串,隨便命名,但是在location塊中必須得加上前綴http://來實現映射;
  • www.youpin.com可以是域名或IP,爲了區分,proxy_pass和server_name 可以不一樣;

2. Nginx的輪訓與加權輪詢

默認情況下,Nginx的輪詢是平均分配的,每一次請求輪流分配給不同的後臺服務器去響應,但是考慮到每個服務器的硬件配置和性能不一樣,我們可以添加weight參數來實現加權輪詢,配置如下:

upstream youpin-server {
	server 192.168.1.173:8080 weight=1;
	server 192.168.1.174:8080 weight=2;
	server 192.168.1.175:8080 weight=5;
}
server {
	listen 80;
	server_name www.youpin.com;
	location / {
		proxy_pass http://youpin-server
	}
}
  • 默認情況下,weight的值爲1,每個服務器的佔比就是三分之一,是平均分配的;
  • 上述自定義配置後,173服務器的佔比是1/8,174佔比是2/8,175佔比是 5/8;

3. upstream指令參數

upstream的指令參數如下:

  • max_conns:表示服務器最大的併發連接數,默認0,表示不做任何限制;
  • down:表示服務器不可用的狀態;
  • backup:表示當前服務器時一臺備用機,只有在其他服務器掛掉以後,備用機才能被訪問到;
  • max_fails:最大的失敗的次數,如果最大失敗次數到達了,就會認爲當前配置的server掛掉了,Nginx會把它踢掉,後續的請求不會來到這臺服務器;
  • fail_timeout:配合max_fails用,表示失敗的時間段,如果max_fails爲2,fail_timeout爲15s,噹噹前服務器失敗2次後,在15s的時間段內不會有任何的請求進來,15s之後恢復正常;
  • 配置方法如下圖所示:
    在這裏插入圖片描述

4. 使用keepalive提高吞吐量

keepalive可以把短連接轉爲長連接,避免了創建和銷燬連接對資源的損耗,基本配置如下

upstream youpin-server {
	server 192.168.1.173:8080 weight=1;
	server 192.168.1.174:8080 weight=2;
	server 192.168.1.175:8080 weight=5;
	keepalive 32;
}
server {
	listen 80;
	server_name www.youpin.com;
	location / {
		proxy_pass http://youpin-server;
		proxy_http_version 1.1;
		proxy_set_header Connection "";
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章