参考博客:https://www.silencetime.com/index.php/archives/29/
原博客说得很详细了 简单来说就是宝塔编译安装的Tengine 已经下载包含这模块了 只是没有添加
只需要在编译安装前 添加上就行了 针对性解决这个问题就是在选择编译安装的时候添加模块参数为
--add-module=/www/server/nginx/src/modules/ngx_http_upstream_check_module
就完事了
插一句 arm架构的默认bug好多 x86的直接编译安装就全都有了 且lua模块不会有问题
但是arm就会装不上 各种报错 烦死了
直接让arm当源站算了
以下仅为记录 参考 学习
简介
nginx_upstream_check_module
是由淘宝技术团队开发的一个 Tengine(Nginx 的分支)模块。Tengine 从 2.0 版本开始不再自带此模块,需要手动编译安装。对于单独安装的 Nginx,也需要额外下载和安装该模块。
作用
该模块用于提供主动式后端服务器健康检查。通过它可以检测后端真实服务器(realserver)的健康状态。如果后端服务器不可用,所有请求将不会转发到该节点上。
心跳检测的意义
- 故障检测:如果有一台 Web 服务器死机或出现故障,服务能够立即检测到。
- 自动剔除:故障服务器会被自动剔除,其他服务器将接替其工作。
- 自动恢复:当服务器恢复正常后,将自动重新加入服务器群中。
- 无需人工干预:所有这些操作均可自动完成,人工只需修复故障服务器。
编译安装 Tengine
步骤概述
- 下载解压 Tengine
- 定位到安装目录
- 查看当前编译命令
- 执行编译
- 替换 Nginx 命令并重启 Nginx
1. 下载解压
定位到 /www/server/nginx/src/
目录。
如果你使用的是 Tengine,nginx_upstream_check_module
模块已经放在 /www/server/nginx/src/modules/ngx_http_upstream_check_module
目录下。
如果你使用的是 Nginx,则需要手动下载:
wget https://codeload.github.com/yaoweibin/nginx_upstream_check_module/zip/master
unzip master
2. 定位安装目录
cd /www/server/nginx/src/
3. 查看当前编译命令
运行以下命令以查看当前的编译选项:
nginx -V
4. 执行编译
在当前编译命令后,添加 --add-module
参数。
# Tengine 示例
./configure --user=www --group=www --prefix=/www/server/nginx --add-module=/www/server/nginx/src/modules/ngx_http_upstream_check_module
# 或者 Nginx 示例
./configure --user=www --group=www --prefix=/www/server/nginx --add-module=/www/server/nginx/src/nginx_upstream_check_module
然后执行编译和安装:
make && make install
5. 替换 Nginx 命令并重启 Nginx
生成的新 Nginx 命令在 objs
目录下,执行以下命令替换旧的 Nginx 命令:
cp objs/nginx /usr/bin/nginx
重启 Nginx:
service nginx restart
检查和应用
在网站的配置文件中头部插入以下内容:
upstream webproxy {
server IP:端口; # 项目 IP 和端口,例如 127.0.0.1:8888
server IP:端口; # 项目 IP 和端口,例如 127.0.0.1:8889
check interval=3000 rise=2 fall=5 timeout=1000 type=http;
}
负载均衡配置
在 server
节点下的 location
节点中配置 proxy_pass
:
location / {
root html;
index index.html index.htm;
proxy_pass http://webproxy;
}
至此,完成了网站的简单负载均衡配置。