阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Nginx负载均衡后端健康检查

183次阅读
没有评论

共计 2016 个字符,预计需要花费 6 分钟才能阅读完成。

本次使用第三方模块 nginx_upstream_check_module 的,要使用这个第三方模块首先您需要进行下载,然后通过 patch 命令将补丁打入您原有的 Nginx 源码中,并且重新进行编译安装。

下载 nginx_upstream_check_module 模块

wget https://codeload.github.com/yaoweibin/nginx_upstream_check_module/zip/master

解压

unzip master

Nginx 负载均衡后端健康检查

解压后的 Nginx 和 nginx_upstream_check_module-master 在同一目录下

Nginx 负载均衡后端健康检查

将补丁打入源码(没有 patch 命令使用 yum -y install patch 安装)

cd nginx-1.6.3
patch -p1 < ../nginx_upstream_check_module-master/check_1.5.12+.patch

出现以下代表成功(根据 nginx 版本选择不同的 check)

Nginx 负载均衡后端健康检查

编译安装 nginx

./configure –prefix=/usr/local/nginx –add-module=../nginx_upstream_check_module-master –with-http_stub_status_module
make && make install

通过以上的步骤,第三方的 nginx_upstream_check_module 模块就在 Nginx 中准备好了。接下来我们讲解一下如何使用这个模块。首先看一下 upstream 的配置信息

interval:必要参数,检查请求的间隔时间。

fall:当检查失败次数超过了 fall,这个服务节点就变成 down 状态。

rise:当检查成功的次数超过了 rise,这个服务节点又会变成 up 状态。

timeout:请求超时时间,超过等待时间后,这次检查就算失败。

default_down:后端服务器的初始状态。默认情况下,检查功能在 Nginx 启动的时候将会把所有后端节点的状态置为 down,检查成功后,在置为 up。

type:这是检查通信的协议类型,默认为 http。以上类型是检查功能所支持的所有协议类型。

一个完整的 nginx 配置信息如下 nginx.conf

worker_processes  4;
error_log  logs/error.log;
events {
    worker_connections  10240;
}
http {
    include      mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    upstream  ekp  {
    server  10.1.1.131:8080;
    server  10.1.1.132:8080;   
    server  10.1.1.135:8080;   
      check interval=3000 rise=2 fall=5;
      check_keepalive_requests 100;
      check_http_send “HEAD / HTTP/1.1\r\nConnection: keep-alive\r\n\r\n”;
      check_http_expect_alive http_2xx http_3xx;
    } 
    server {
        listen      80;
        server_name  www.test.com;
    access_log  /usr/local/nginx/logs/access.log;
        location / {
           
            root  ekp;
            index  index.html index.htm index.jsp;
            proxy_pass        http://ekp;   
            proxy_set_header  Host            $host;
            proxy_set_header  X-Real-IP        $remote_addr;
            proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
        client_max_body_size    200m;
        proxy_connect_timeout      10;
        proxy_read_timeout          300;
        proxy_send_timeout          300;
        }
    location /nstatus {
        check_status;
        access_log on;
      }
    }
}

PS: 这里配置按照参考文档加 timeout=1000 type=http 否则无法负载均衡

访问测试 http://ip/nstatus

Nginx 负载均衡后端健康检查

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计2016字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中