讓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表示兩台伺服器都正常。