五、nginx 负载均衡+ 第三方模块,健康状态检测
开始打算用cep21-healthcheck_nginx_upstreams-16d6ae7.zip来做的,但是发现有版本错误,参考 ,可以在1.2.1以上使用了,结合了healthcheck_nginx_upstreams的来做
https://github.com/yaoweibin/nginx_upstream_check_module 下载软件
需要打补丁,并且重新编译
修改配置文件:
# egrep -v "^$|#" /etc/nginx/nginx.conf worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; upstream peace { server 192.168.80.143 weight=1; //指定节点web1 server 192.168.80.144 weight=2; //指定节点web2 check interval=1000 rise=2 fall=2 timeout=1000; //interval检测间隔时间,rsie请求2次正常的话为up,fail请求2次失败的话为down,timeout检查超时时间(毫秒) check_http_send "GET /.test.html HTTP/1.0"; //所发送的检测请求 } sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { proxy_pass ; //引用 } location /status { //定义一个类似stub_status的方式输出检测信息 check_status; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } # service nginx restart下面访问下192.168.80.146/status可以看到两台都up,并且页面正常:
之后关闭一台web2,可以看到已经down,并且访问都是web1工作: