讓nginx在反向代理的時候能實現對後臺的web server進行狀態檢測
1、編譯安裝nginx
檢測狀態補丁的軟件包:healthcheck_nginx_upstreams.zip
unzip healthcheck_nginx_upstreams.zip
重命名文件
mv cep21-healthcheck_nginx_upstreams-16d6ae7 healthcheck_nginx_upstreams
nginx的軟件包:nginx-1.0.11.tar.gz
tar xf nginx-1.0.11.tar.gz
cd nginx-1.0.11
打補丁:
patch -p1 < ../healthcheck_nginx_upstreams/nginx.patch
編譯安裝nginx
./configure --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --with-pcre --add-module=/root/healthcheck_nginx_upstrea
make && make install
2、爲兩臺服務器配置測試頁面
本機172.16.6.3有webserver工作在8080的端口
另外一臺172.16.0.1的80端口
172.16.6.3的配置(既是webserver又是nginx)
yum install httpd
vim /etc/httpd/conf/httpd.conf
Listen 8080
添加網頁
cd /var/www/html
vim index.html
<h1>
172.16.6.3
</h1>
vim health
I_AM_ALIVE
啓動服務service httpd start
爲172.16.0.1配置同樣的測試也即health
先保證正常提供服務
http://172.16.6.3
http://172.16.6.3/health
http://172.16.0.1/health
3、配置nginx,使用反向代理,並能檢測後臺服務
在http中添加如下:
upstream backend {
server 127.0.0.1:8080;
server 172.16.0.1:80;
healthcheck_enabled;
healthcheck_delay 1000;
healthcheck_timeout 1000;
healthcheck_failcount 1;
healthcheck_send "GET /health HTTP/1.0";
}
在server中添加如下:
location / {
proxy_set_header Host $http_host;
proxy_pass http://backend;
proxy_connect_timeout 3;
}
location /stat {
healthcheck_status;
}
啓動服務service nginx start
4、在客戶端驗證
http://172.16.6.3/statu
在打開的頁面中顯示Last health status爲OK,Is down?爲0表示兩臺服務器都正常。