查看nginx已安装的模块:nginx -V
下载: wget https://codeload.github.com/yaoweibin/nginx_upstream_check_module/zip/master
解压后切换到nginx目录下导入check_1.12.1+.pach文件。根据安装的nginx版本不同,选择不同的安装文件。以为是nginx.1.18.0版本
patch -p1 < ../nginx_upstream_check_module-master/check_1.16.1+.patch
成功后的提示:
编译nginx:如果nginx正在线上运行,查看nginx -V
方案一:停掉nginx服务,添加nginx_upstream_check_module模块。
./configure --prefix=/mw/nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --add-module=/mw/ngx_http_proxy_connect_module-master --add-module=/root/nginx-upload-module-2.2 --add-module=/data/nginx/nginx_upstream_check_module
# 编译make make install
方案二:./configure --user=www --group=www --prefix=/mw/nginx --add-module=../nginx_upstream_check_module-master/
# 编译
make
# 进入objs,编译好的nginx在这个目录里
cd /opt/nginx/nginx-1.18.0/objs
# 备份旧的nginx
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
# 替换nginx
cp nginx /usr/local/nginx/sbin/nginx
千万不要make install,否则就是覆盖安装
重启下nginx服务,重新查看模块加载情况:
- 安装nginx安装第三方模块实际上是使用–add-module重新安装一次nginx,不要make install,而是直接把编译目录下objs/nginx文件直接覆盖老的nginx文件。如果你需要安装多个nginx第三方模块,你只需要多指定几个相应的–add-module即可。
模块添加成功之后,nginx添加检查策略:
之后在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;
}
打开nstatus这个页面就可以看到当前realserver的状态了,
如下图:
1.2台realserver都正常的情况下
2.一台realserver故障的情况下