当前位置: 首页 > linux, 云计算, 系统工具 > 正文

Nginx/Tengine 根据域名进行健康检查

【摘要】Tengine,增加了ngx_http_upstream_check_module模块,这样提供了主动式后端服务器健康检查的功能,功能非常赞。之前一直使用都是通过HTTP(ip+port),TCP(port)方式,如果后端服务器有多个虚拟主机,健康检查会收到干扰,所以使用域名(domain)进行健康检查是有必要的。经过一些测试,发现如下方法可行,于是记录并share出来,希望对一些有类似需求的同学有所帮助。

测试案例:
前端服务器使用Tengine,配置healthckeck.sudops.com域名,proxy_pass到后端服务器
后端服务器同样使用Tengine/Nginx,配置两个虚拟主机 healthckeck.sudops.com和healthckeck2.sudops.com,并且设置healthckeck2.sudops.com为默认Vhost

具体配置文件如下,两个虚拟主机配置

html创建两个目录和健康检查文件

Tengine前端配置文件:

这样就可以通过修改后端服务器的vhost配置及健康检查页面来进行测试了。

测试过程:
1. 为达到效果,把html/2/status.html文件重命名为html/2/status.html.bak
因为8090端口默认的vhost是healthckeck2.sudops.com,所以如果使用配置

请求http://healthckeck.sudops.com/status.html会落到healthckeck2.sudops.com vhost上,后端这样会返回404,健康检查失败,前端返回502

如果使用

进行健康检查,这样会将http header Host: healthckeck.sudops.com传过去,有了host头,后端服务器就不会落到默认的vhost中,健康检查成功,返回200,页面可以正常访问了。

本文固定链接: https://www.sudops.com/nginx-tengine-health-check-with-domain.html | 运维·速度

该日志由 Fisher 于2014年08月29日发表在 linux, 云计算, 系统工具 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: Nginx/Tengine 根据域名进行健康检查 | 运维·速度
关键字: ,

Nginx/Tengine 根据域名进行健康检查:等您坐沙发呢!

发表评论


Time limit is exhausted. Please reload the CAPTCHA.

快捷键:Ctrl+Enter