1. 目的
在原nginx加第三方模块nginx_upstream_check_module实现http检测.
由于系统是24小时运行,所以需要做平滑升级
2. 模拟环境搭建
cd /opt
tar xf nginx-1.20.2.tar.gz
./configure --prefix=/apps/nginx-1.20 --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
make -j 4
make install
3. 启动nginx
/apps/nginx-1.20/sbin/nginx
4. 解压第三方模块
cd ..
unzip nginx_upstream_check_module-master.zip
5. nginx第三方补丁
cd nginx-1.20.2
patch -p1 < /opt/nginx_upstream_check_module-master/check_1.20.1+.patch
6. 编译
./configure --prefix=/apps/nginx-1.20 --user=nginx --group=nginx \
--with-http_stub_status_module --with-http_ssl_module \
--with-http_stub_status_module --add-module=/opt/nginx_upstream_check_module-master
make -j 4
7. 备份替换nginx执行文件
mv /apps/nginx-1.20/sbin/nginx /apps/nginx-1.20/sbin/nginx-1.20.2-20220802.bak
cp objs/nginx /apps/nginx-1.20/sbin/nginx
/apps/nginx-1.20/sbin/nginx -V
8. 修改Nginx配置文件
vi /apps/nginx/conf/conf.d/aa.conf
upstream aaa {
server 192.168.31.17;
server 192.168.31.27;
check interval=3000 rise=2 fall=5 timeout=1000 type=http;
check_http_send "HEAD / HTTP/1.0\r\n\r\n";
check_http_expect_alive http_2xx http_3xx;
}
server {
listen 192.168.31.67:80;
server_name aa.qiuqin.com 192.168.31.67;
location / {
proxy_pass http://aaa;
}
}
9. 平滑升级
此时进程从37014切替成40947