Nginx 安装第三方 nginx_upstream_check_module 模块

nginx做负载均衡,如果后端服务器有故障的话,nginx是不能把这台realserver从upstream池中移除的,所以还会有请求转发到后端的这台realserver上面去,虽然nginx可以在localtion中启用proxy_next_upstream来判断后端如果有故障就转发到其他可用后端服务器,但这个还是会把请求转发给这台服务器的,然后再转发给别的服务器,这样就浪费了一次转发。可通过第三方模块nginx_upstream_check_module来解决这个问题,此模块检测后方realserver的健康状态,如果后端服务器不可用,则所以的请求不转发到这台服务器。安装步骤如下:

安装git

# yum -y install git

下载源码

# git clone https://github.com/yaoweibin/nginx_upstream_check_module.git

打补丁

进入nginx目录

# cd nginx-1.12.x
# patch -p1 < ../nginx_upstream_check_module/check_1.11.5+.patch

注:因nginx版本更新,1.12以上版本的nginx,补丁为check_1.11.5+.patch

编译

# ./configure --prefix=/usr/local/nginx \
--user=nginx --group=nginx \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-http_sub_module \
--with-pcre \
--add-module=../nginx_upstream_check_module

使用方法请看官方文档

https://github.com/yaoweibin/nginx_upstream_check_module