健康检查功能不会更新后端服务器

健康检查功能不会更新后端服务器域名解析

 

我的后端服务器使用动态域名,当动态域名的地址变了之后就会不断出现以下错误:

2013/03/23 16:27:37 [error] 21253#0: check time out with peer: 113.96.37.249:60080 
2013/03/23 16:27:37 [error] 21257#0: check time out with peer: 113.96.37.249:60080 
2013/03/23 16:27:43 [error] 21253#0: check time out with peer: 113.96.37.249:60080 
2013/03/23 16:27:43 [error] 21257#0: check time out with peer: 113.96.37.249:60080 
2013/03/23 16:27:49 [error] 21253#0: check time out with peer: 113.96.37.249:60080

并且只有重启tengine之后才能解决。

我的配置如下:

upstream mygroup {
    server server1.dynamic.dns:60080;
    server server2.dynamic.dns:60080;

    check interval=3000 rise=2 fall=2 timeout=3000 type=http;
    check_http_send "GET /upstream_check HTTP/1.0\r\n\r\n";
    check_http_expect_alive http_2xx;
}

当然即使不用动态域名,后端服务器域名解析也有可能变动,建议tengine能够定时更新域名解析。

 

你好,这个问题不仅仅是健康检查的问题,就算健康检查能更新,upstream块里面的server地址也不会更新。

后端服务器动态更新模块我们正在开发 (https://github.com/yzprofile/ngx_http_dyups_module ),但是可能跟你的想法有点不一样,我们的做法是动态更新服务器,而不需要reload。

你们的需求或许可以通过正向代理的方法来解决,比如类似这样:

location / {
     resolver 8.8.8.8;
     proxy_pass http://$host;
}

它可以定期查询后端的DNS服务器,动态更新服务器的IP。

posted @   xiaohui163  阅读(2162)  评论(1编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示