Nginx负载均衡和节点检查

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx负载均衡和节点检查相关的知识,希望对你有一定的参考价值。

参考技术A a.使用语法:

check interval=milliseconds [fall=count] [rise=count] [timeout=milliseconds] [default_down=true|false] [type=tcp|http|ssl_hello|mysql|ajp] [port=check_port]

b.默认值:

如果没有配置参数,默认值是:interval=30000 fall=5 rise=2 timeout=1000 default_down=true type=tcp

c.上下文: upstream模块

upstream mogo

server mogo:8080 weight=4;

server mogo2:8080 weight=4;

check interval=3000 fall=5 rise=2 timeout=1000;

ip_hash;



对mogo负载均衡条目中的所有节点,每个3秒检测一次,请求 2 次正常则标记realserver状态为up,如果检测 5 次都失败,则标记 realserver的状态为down,超时时间为1秒.

nginx负载均衡策略:

a.RR(Round Robin-默认) - 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,会自动剔除。

b.ip_hash - 客户端ip绑定,每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端的服务器,可以解决session问题。

c.least_conn - 最少连接,下一个请求将被分配到活动连接数量最少的服务器。

NGINX 负载均衡监测节点状态 之 十一

1、监测负载均衡节点作用

用于提供主动式后端服务器健康检查,通过它可以检测后端realserver的健康状态,如果后端realserver不可用,则所有的请求就不会转发到该节点上。

2、依赖模块nginx_upstream_check_module

编译安装方法:
./configure xxxxxxxxxxxxxxx --add-module=/app/software/nginx_upstream_check_module-master/
备注:可直接使用淘宝团队开发的NGINX程序包
http://tengine.taobao.org/download_cn.html

3、nginx主要配置文件

worker_processes  1;
events {
    worker_connections  1024;
}
error_log  logs/error.log;
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for"‘;

    access_log  logs/access.log  main;

    upstream server_pools {
        server 10.3.151.34:81;
        server 10.3.151.246:81;
        check interval=3000 rise=2 fall=5 timeout=1000;
                #对server_pools这个负载均衡条目中的所有节点,每隔3秒检测一次,请求2次正常则标记为realserver状态为UP,如果检查5次都失败,则标记realserver的状态为down,超时时间为1秒,检查的协议是HTTP。
        }

server {
        listen       80;
        server_name  www.kang.com;
        location / {
            proxy_pass http://server_pools;
        }
        location /status {              #定义状态路径
            check_status ;
            access_log off;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        listen       81;
        server_name  www.kang.com;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    #include vhost/*.conf;
}

4、展示效果

正常状态:
技术分享图片

异常状态:
技术分享图片

以上是关于Nginx负载均衡和节点检查的主要内容,如果未能解决你的问题,请参考以下文章

NGINX 负载均衡 之九

NGINX 负载均衡监测节点状态 之 十一

Nginx的负载均衡max_fails和fail_timeout设置

配置 Nginx 负载均衡监测节点状态

集群和负载均衡的区别 nginx

Haproxy+Nginx负载均衡群集及调度日志管理