Nginx负载均衡实现4层和7层健康检查下⾯对配置⽂件中的配置进⾏解析
user nginx;
events {
worker_connections 1024;
}
http {
#下边server固定放在nginx配置⽂件中,主要⽤来做健康检查
#指定监听的ip  指定健康检查的访问路径和数据的展⽰格式为json,
#访问curl  127.0.0.1:9997/status  则所有健康检查的数据均能显⽰。获取数据代码解析json获取所需数据即可
server {
listen 127.0.0.1:9997;
location /status {
healthcheck_status json;
}
}
#正常开始添加
server {
listen 192.168.11.2:800;
server_name test1;
location /{
proxy_pass test1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
upstream test1 {
server 10.110.29.22:8080 weight=20;
server 10.110.28.33:80 weight=20;
#interval健康检查检查间隔时间  rise检查成功⼏次认为后端server状态为up  fall检查失败⼏次认为后端server状态为down
#timeout超时时间  type检查协议类型(tcp或者http)
#port健康检查的端⼝,取值从1开始,不配置默认检测后端server本⾝端⼝(29.22就检查8080端⼝,28.33就检查80端⼝),
#规定后所有后端server检查规定的端⼝(port=8080:29.22和28.33都检查8080端⼝)
check interval=3000 rise=1 fall=3 timeout=4000 type=http port=8080;
#此条检查http转发,需要配置的有两个地⽅
#⼀是转发路径如果不加配置默认"/"访问根⽬录下默认的tomcat页⾯,配置健康检查路径后,按配置路径去访问后端节点是否可⽤
#举例说明登录10.110.29.22节点,在tomcat⽬录webapps⽬录下新建⽬录aa并且放⼊⽂件bb.html。这样健康检查时11.110.29.22:8080的状态为up      #⽽10.110.28.33:8080的状态就为down,因为⽆法到此节点。
#另⼀⽅⾯是域名的配置,这个对健康检查的结果⽬前并⽆影响(具体情况以后补充)。
#⼀般这两个⽅⾯没有特殊要求默认不做配置即可,如果需要配置域名,可参考以下链接
*****t/developer/article/1448475*****
check_http_send "HEAD / HTTP/1.0\r\n\r\n";
nginx 配置文件
#check_http_send "HEAD /aa/bb.html HTTP/1.1\r\nHost:www.baidu\r\n\r\n";
check_http_expect_alive http_2xx http_3xx;
}
}
stream{
server {
listen 192.168.23.13:88;
proxy_pass test2;
}
upstream test2 {
server 10.110.29.12:8080 weight=20;
server 10.110.28.13:8080 weight=20;
check interval=3000 rise=1 fall=3 timeout=4000 type=tcp port=8080;
}
server {
listen 192.168.23.13:77  udp;
proxy_pass test3;
}
upstream test3 {
server 10.110.29.12:8080 weight=20;
server 10.110.28.13:8080 weight=20;
check interval=3000 rise=1 fall=3 timeout=4000 type=udp port=8080;
}
}
检测后端server‘状态 不指定port默认显⽰为0
需要注意⼀点,⼀定要打补丁,否则stream模块的健康检查不可⽤(git中也有详细介绍)
cd tengine-2.3.2
patch -p1 < /root/ngx_healthcheck_module/nginx_healthcheck_for_tengine_2.3+.patch
根据⾃⼰的版本选择补丁⽂件

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。