nginx_upstream_check_module
nginx_upstream_check_module copied to clipboard
nginx能否实现根据应用返回的响应头中的值来作为健康检查
真实环境中,应用是否可以用,是根据应用的业务处理是否正常;如果nginx能从响应头中判断后端应用的健康状态,就可以实现应用的隔离与恢复了!
http模块就是这样的方式啊
check interval=3000 rise=2 fall=1 timeout=1000 type=http;
check_http_expect_alive http_2xx;
check_http_send "GET /monitor.html HTTP/1.0\r\n\r\n";
你这个只是发送了一个请求,判断的是请求是否能返回200来判断是否再运行状态,如果是能发送一个请求,根据响应里面的一个值来判断后端应用是否再使用就更好了,这样的话,后端应用只要设置下探测报文的响应值,running or stop,如果具备这样的功能,那就可以实现灰度部署了!
实际上你应该自己实现 健康检测的接口, 而非将结果检查的操作期望放置于nginx, 通过状态码判断没有任何问题。
想实现一个隔离后端应用的的功能,不仅仅是端口发不通了隔离,比如有时候要运维其中的一台应用,所以通过设置应用返回的值,这样nginx就能自动隔离了