Nginx uptream健康检查

  

上游你好{
服务器100.14.1.3:1201;
服务器100.14.1.4:1201;
检查间隔=3000=2上升下降=1000=5超时类型=http;
check_http_send“http/1.0头/产品\ r \ n \ r \ n";
check_http_expect_alive http_2xx http_3xx;
}
服务器{
听80;
server_name hello.youbest.com;
access_log/数据/logs/nginx/hello.youbest.com.access.log主要;
位置/{
proxy_set_header X-Forwarded-For remote_addr美元;
proxy_set_header X-Real-IP remote_addr美元;http://hello
proxy_pass;
}
}

  

首先要确认服务类型是http还是tcp

  
 <代码>检查间隔=3000=2上升下降=5=1000类型=http超时;
  
  或
  
  检查间隔=3000=2上升下降=5=1000类型=tcp超时;
  
  然后确认健康检查的url是否支持主管请求或者得到请求
  
  (root@100-14-1-3 ~) # curl - v -XHEAD http://hello.youbest.com/product  
  
      <李>()连接到hello.youbest.com端口80(# 0)   <李>尝试10.24.1.3……李连接   <李>连接到hello.youbest.com(100.14.1.3)端口80 (# 0)   
      

    头/HTTP/1.1
    user - agent:旋度/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh3/1.4.2
    主持人:baidu.com
    接受:/

      

    & lt;HTTP/1.1 200 OK
    & lt;时间:星期二,2020年1月07 08:29:28格林尼治时间
    & lt;Apache服务器:
    & lt;最后修改:星期二,2010年1月12日格林尼治时间13:48:00
    & lt;ETag:“51-47cf7e6ee8400"
    & lt;Accept-Ranges:字节
    & lt;内容长度:81
    & lt;cache - control:信息=86400
    & lt;格林尼治时间2020年1月到期:结婚,08年08:29:28
    & lt;连接:维生
    & lt;的content - type: text/html
    & lt;

      李   
  

以上返回表示支持主管请求nginx就可以这样做健康检查

  
 <代码>检查间隔=3000=2上升下降=5=1000类型=http超时;
  check_http_send“头/产品HTTP/1.0 \ r \ n \ r \ n”;
  check_http_expect_alive http_2xx http_3xx;  
  

其中/产品表示服务里面的埋点路径

  

& lt;HTTP/1.1 200 OK表示返回200状态

  

如果头请求不支持参考下面baidu.com的得到请求

  

[root@vhs100-14-1-3 ~] # curl - v xget http://baidu.com

  
      <李>()连接到baidu.com端口80(# 0)   <李>尝试220.181.38.148……李连接   <李>连接到baidu.com(220.181.38.148)端口80 (# 0)   
      

    /HTTP/1.1
    user - agent:旋度/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh3/1.4.2
    主持人:baidu.com
    接受:/

      

    & lt;HTTP/1.1 200 OK
    & lt;时间:星期二,2020年1月07 08:41:38格林尼治时间
    & lt;Apache服务器:
    & lt;最后修改:星期二,2010年1月12日格林尼治时间13:48:00
    & lt;ETag:“51-47cf7e6ee8400"
    & lt;Accept-Ranges:字节
    & lt;内容长度:81
    & lt;cache - control:信息=86400
    & lt;格林尼治时间2020年1月到期:结婚,08年08:41:38
    & lt;连接:维生
    & lt;的content - type: text/html
    & lt;
    & lt; html>
    & lt;元http-equiv=皉efresh"内容=?;url=http://www.baidu.com/"在
    & lt;/html>

      李   <李>连接# 0到主机baidu.com留下完整的   <李>关闭连接# 0   
  

以上表示支持得到请求nginx就可以这样做健康检查

  
 <代码>检查间隔=3000=2上升下降=5=1000类型=http超时;
  check_http_send“HTTP/1.0/产品\ r \ n \ r \ n”;
  check_http_expect_alive http_2xx http_3xx;  
  

加了健康检查后,当后端有多台服务器提供服务时
向下掉的机器就不会被代理转发业务过去
从而保障业务的正常处理

Nginx uptream健康检查