nginx健康檢測(ngx_http_upstream_check_module 淘寶)
下面是nginx打上模組補丁的安裝
$ wget ‘http://nginx.org/download/nginx-1.0.14.tar.gz’
$ tar -xzvf nginx-1.0.14.tar.gz
$ cd nginx-1.0.14/
$ patch -p1 < /path/to/nginx_http_upstream_check_module/check.patch
注:因nginx版本更新,1.2以上版本的nginx,補丁為check_1.2.1+.patch
$ ./configure –add-module=/path/to/nginx_http_upstream_check_module
$ make
$ make install
之後在nginx.conf配置檔案裡面的upstream加入健康檢查,如下:
upstream linuxyan {
server 192.168.0.21:80;
server 192.168.0.22:80;
check interval=3000 rise=2 fall=5 timeout=1000;
}
這裡下面加的這句話我解釋下,interval檢測間隔時間,單位為毫秒,rsie請求2次正常的話,標記此realserver的狀態為up,fall表示請求5次都失敗的情況下,標記此realserver的狀態為down,timeout為超時時間,單位為毫秒。
在server段裡面可以加入檢視realserver狀態的頁面
location /nstatus {
check_status;
access_log off;
#allow SOME.IP.ADD.RESS;
#deny all;
}
2、當type=tcp時,後臺伺服器,比如resin,已經啟動,但其中一個應用有問題而沒有啟動時,是無法自動檢測到這類問題。但如果resin本身就沒有啟動,則可以檢測出來,並自動跳轉。
當type=http時,還在研究,待續。。。