简述
Nginx的HTTP Upstream模块提供了对后端服务器的健康检查功能。这是通过HttpUpstreamModule模块中的相关指令来实现的。在Nginx中,可以使用HttpUpstreamModule模块中的“server”指令来指定后端服务器,并使用“backup”指令来指定备份服务器。但是,Nginx本身并不提供自动的健康检查机制。要实现这个功能,你需要使用第三方模块,例如“nginx_upstream_check_module”。
准备
nginx/1.21.4 (nginx这里安装好的,版本控制到1.2.1及以上)
nginx-upstream-fair-master.zip
- 下载地址1:https://github.com/yaoweibin/nginx_upstream_check_module
- 下载地址2:https://download.csdn.net/download/m0_60821938/89913605
安装步骤
1.上传 nginx-upstream-fair-master.zip 到服务器。
2.解压zip文件
cd /usr/local/nginx/thrid_module
unzip nginx-upstream-fair-master.zip
3.进行补丁添加(根据nginx版本添加)
# 进入nginx安装路径
cd /usr/local/nginx
# 添加补丁
patch -p1 < /usr/local/nginx/thrid_module/nginx_upstream_check_module-master/check_1.20.1+.patch
注意:因为安装版本为 1.21.4 ,所以选择1.20.1+的。
4.查看当前nginx 配置,是为了后面重新编译准备。
# 进行nginx的启动目录
cd /usr/local/nginx/sbin
# 查看nginx版本
./nginx -V
--prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
5.重新编译nginx
核心命令
# --add-module=nginx_upstream_check_module-master的解压路径
--add-module=/usr/local/nginx/thrid_module/nginx_upstream_check_module-master
执行命令(nginx安装目录下执行命令)
# 编译配置
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=/usr/local/nginx/thrid_module/nginx_upstream_check_module-master
# 编译
make
没有出现报错就表示编译成功。
6.重启nginx
先关闭nginx服务,替换编译后的文件。
编译后的文件
需要替换的文件
替换命令(替换前最好备份下)
cp /usr/local/nginx/objs/nginx /usr/local/nginx/sbin/
# 出现提示是否替换后输入y
清理nginx目录下的的proxy_temp里面的文件(这里清理时防止重启后可能出现打开文件权限问题)
添加配置信息
upstream backend {
server ip:端口;
check interval=3000 rise=2 fall=5 timeout=1000;
}
location /status {
check_status;
access_log off;
}
启动服务
# 进入nginx的sbin目录
cd /usr/local/nginx/sbin
# 启动
./nginx
7.查看服务是否生效