tengine负载均衡与健康检查
1、修改conf文件夹下的nginx.conf文件,在http内添加以下配置
upstream backend{
server ip1:port1;
server ip2:port2 backup;
check interval=1000 rise=2 fall=3 timeout=1000 type=http;
check_http_send "HEAD / HTTP/1.0\r\n\r\n";
check_http_expect_alive http_2xx http_3xx;
}
其中,
ip1:port1改为服务器部署接口的ip和端口号
ip2:port2改为终端部署接口的ip和端口号
backup:这台服务器就会成为备份服务器。在平时不使用,nginx不会给它转发任何请求。只有当其他节点全部无法连接的时候,nginx才会启用这个节点。一旦有可用的节点恢复服务,该节点则不再使用,又进入后备状态。
指令后面的参数意义是:
interval:向后端发送的健康检查包的间隔。
rise(rise_count): 如果连续成功次数达到rise_count,服务器就被认为是up。
fall(fall_count): 如果连续失败次数达到fall_count,服务器就被认为是down。
timeout: 后端健康请求的超时时间。
type=http:健康检查包的类型,发送HTTP请求,通过后端的回复包的状态来判断后端是否存活。
check_http_send:配置http健康检查包发送的请求内容。
check_http_expect_alive :指定HTTP回复的成功状态,默认认为2XX和3XX的状态是健康的。
2、在server内添加以下配置
location /api {
proxy_pass http://backend;
}
3、开启gzip,在server内添加以下配置
# 开启gzip on为开启,off为关闭
gzip on;
# 检查是否存在请求静态文件的gz结尾的文件,如果有则直接返回该gz文件内容,不存在则先压缩再返回
gzip_static on;
# 设置允许压缩的页面最小字节数
gzip_min_length 10k;
# 对特定的MIME类型生效,其中'text/html’被系统强制启用
gzip_types text/javascript application/javascript text/css application/json;
# Nginx作为反向代理的时候启用,开启或者关闭后端服务器返回的结果
# 匹配的前提是后端服务器必须要返回包含"Via"的 header头
# any - 无条件启用压缩
gzip_proxied any;
# 请求加个 vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩
gzip_vary on;
# gzip压缩比(1~9)
gzip_comp_level 7;
# 获取多少内存用于缓存压缩结果,‘16 8k’表示以8k * 16 为单位获得。
gzip_buffers 16 8k;
4、重启nginx
sudo /usr/local/nginx/sbin/nginx -s reload
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)