程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> nginx添加 nginx_heath模塊,nginxnginx_heath

nginx添加 nginx_heath模塊,nginxnginx_heath

編輯:JAVA綜合教程

nginx添加 nginx_heath模塊,nginxnginx_heath


原因?為什麼會使用nginx_heath 這個模塊,主要是如nginx+tomcat部署的時,tomcat掛了之後nginx->upstream 輪詢是可以踢掉掛掉的tomcat服務的,如果部署的機器掛了之後nginx輪詢是不能踢掉的,如果服務再去請求,就會出現請求超時!

1、ngx_http_proxy_module 模塊和ngx_http_upstream_module模塊(自帶)
官網地址:http://nginx.org/cn/docs/http/ngx_http_proxy_module.html#proxy_next_upstream
2、nginx_upstream_check_module模塊
官網網址:https://github.com/yaoweibin/nginx_upstream_check_module
3、ngx_http_healthcheck_module模塊
官網網址:http://wiki.nginx.org/NginxHttpHealthcheckModule

 

目前主要使用的是第二種解決方式:

1.添加nginx_heath模塊

首先需要添加【nginx_upstream_check_module】模塊:http://pan.baidu.com/s/1caLNUe

./nginx -V

查看已經添加的nginx模塊如:--prefix=/opt/nginx-new --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre

進入nginx源碼中為nginx打補丁:patch -p0 < ../nginx_upstream_check_module-master/check_1.5.12+.patch,這個需要合適的版本,不然會出現打補丁失敗,如果提示沒有patch命令的話,請先安裝yum -y install patch

追加nginx_upstream_check_module模塊:--prefix=/opt/nginx-new --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre --add-module=/home/software/nginx_upstream_check_module-master

然後make

 

2.配置upstream加入健康檢查

upstream name{

  server 10.144.48.157:8205;
  server 119.29.204.12:8889;
  check interval=3000 rise=2 fall=3 timeout=3000 type=tcp;
}

上面配置的意思是,對name這個負載均衡條目中的所有節點,每個3秒檢測一次,請求2次正常則標記 realserver狀態為up,如果檢測 5 次都失敗,則標記 realserver的狀態為down,超時時間為1秒。

指定參數的意思:

- interval:向後端發送的健康檢查包的間隔。
- fall(fall_count): 如果連續失敗次數達到fall_count,服務器就被認為是down。
- rise(rise_count): 如果連續成功次數達到rise_count,服務器就被認為是up。
- timeout: 後端健康請求的超時時間。
- default_down: 設定初始時服務器的狀態,如果是true,就說明默認是down的,如果是false,就是up的。默認值是true,也就是一開始服務器認為是不可用,要等健康檢查包達到一定成功次數以後才會被認為是健康的。
- type:健康檢查包的類型,現在支持以下多種類型
- tcp:簡單的tcp連接,如果連接成功,就說明後端正常。
- ssl_hello:發送一個初始的SSL hello包並接受服務器的SSL hello包。
- http:發送HTTP請求,通過後端的回復包的狀態來判斷後端是否存活。
- mysql: 向mysql服務器連接,通過接收服務器的greeting包來判斷後端是否存活。
- ajp:向後端發送AJP協議的Cping包,通過接收Cpong包來判斷後端是否存活。
- port: 指定後端服務器的檢查端口。你可以指定不同於真實服務的後端服務器的端口,比如後端提供的是443端口的應用,你可以去檢查80端口的狀態來判斷後端健康狀況。默認是0,表示跟後端server提供真實服務的端口一樣。該選項出現於Tengine-1.4.0。

 

3.配置web頁面

location /nstatus {
  check_status;
  access_log off;
}

如圖:

如果有down掉的如圖

 

另外還支持參數請求?status=up,顯示出up狀態的upstream。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved