ngx_healthcheck_module intro
8869 단어 nginxnginx-modulec
Health-checker for Nginx upstream servers (support http upstream && stream upstream)
이 모듈 은 Nginx 에 능 동적 백 엔 드 서버 건강 검진 기능 (4 층 과 7 층 백 엔 드 서버 건강 검진 지원) 을 제공 합 니 다.
Table of Contents
Status
This nginx module is still under development, you can help improve and it.
이 프로젝트 는 아직 개발 중 입 니 다. 공헌 코드 를 환영 하거나 버그 를 보고 합 니 다.함께 그것 을 더욱 좋게 하 다.
Description
nginx 를 부하 이퀄 라이저 로 사용 할 때 nginx 원생 은 정상 적 인 백 엔 드 서버 에 접근 할 수 있 도록 기본 적 인 재 시도 방식 만 제공 합 니 다.
이에 비해 이 nginx 제3자 모듈 은 백 엔 드 서버 에 주동 적 인 건강 상태 검 사 를 제공 할 수 있 습 니 다.새로운 요청 이 건강 한 백 엔 드 서버 로 직접 전 송 될 수 있 도록 백 엔 드 서버 목록 을 유지 합 니 다.
주요 특성:
git clone https://github.com/nginx/nginx/nginx.git
git clone https://github.com/zhouchangxun/ngx_healthcheck_module.git
cd nginx/;
git apply ../ngx_healthcheck_module/nginx-stable-1.12+.patch
./auto/configure --with-stream --add-module=../ngx_healthcheck_module/
make && make install
Back to TOC
Usage
nginx.conf example
user root;
worker_processes 1;
error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
server {
listen 80;
# status interface
location /status {
healthcheck_status;
}
# http front
location / {
proxy_pass http://http-cluster;
}
}
# as a backend server.
server {
listen 8080;
location / {
root html;
}
}
upstream http-cluster {
# simple round-robin
server 127.0.0.1:8080;
server 127.0.0.2:81;
check interval=3000 rise=2 fall=5 timeout=5000 type=http;
check_http_send "GET / HTTP/1.0\r
\r
";
check_http_expect_alive http_2xx http_3xx;
}
}
stream {
upstream tcp-cluster {
# simple round-robin
server 127.0.0.1:22;
server 192.168.0.2:22;
check interval=3000 rise=2 fall=5 timeout=5000 default_down=true type=tcp;
}
server {
listen 522;
proxy_pass tcp-cluster;
}
upstream udp-cluster {
# simple round-robin
server 127.0.0.1:53;
server 8.8.8.8:53;
check interval=3000 rise=2 fall=5 timeout=5000 default_down=true type=udp;
}
server {
listen 53;
proxy_pass udp-cluster;
}
}
status interface
One typical output is
root@changxun-PC:~/nginx-dev/ngx_healthcheck_module# curl localhost/status
{"servers": {
"total": 6,
"generation": 3,
"http": [
{"index": 0, "upstream": "http-cluster", "name": "127.0.0.1:8080", "status": "up", "rise": 119, "fall": 0, "type": "http", "port": 0},
{"index": 1, "upstream": "http-cluster", "name": "127.0.0.2:81", "status": "down", "rise": 0, "fall": 120, "type": "http", "port": 0}
],
"stream": [
{"index": 0, "upstream": "tcp-cluster", "name": "127.0.0.1:22", "status": "up", "rise": 22, "fall": 0, "type": "tcp", "port": 0},
{"index": 1, "upstream": "tcp-cluster", "name": "192.168.0.2:22", "status": "down", "rise": 0, "fall": 7, "type": "tcp", "port": 0},
{"index": 2, "upstream": "udp-cluster", "name": "127.0.0.1:53", "status": "down", "rise": 0, "fall": 120, "type": "udp", "port": 0},
{"index": 3, "upstream": "udp-cluster", "name": "8.8.8.8:53", "status": "up", "rise": 3, "fall": 0, "type": "udp", "port": 0}
]
}}
root@changxun-PC:~/nginx-dev/ngx_healthcheck_module#
Back to TOC
Synopsis
check
Syntax
: check interval=milliseconds
[fall=count] [rise=count] [timeout=milliseconds]
[default_down=true|false] [type=tcp|udp|http] [port=check_port]
Default
: interval=30000 fall=5 rise=2 timeout=1000 default_down=true type=tcp Context
: http/upstream || stream/upstream 이 명령 은 백 엔 드 서버 의 건강 검진 기능 을 열 수 있다.
Detail
: A example as followed:
stream {
upstream tcp-cluster {
# simple round-robin
server 127.0.0.1:22;
server 192.168.0.2:22;
check interval=3000 rise=2 fall=5 timeout=5000 default_down=true type=tcp;
}
server {
listen 522;
proxy_pass tcp-cluster;
}
...
}
healthcheck
Syntax
: healthcheck_status [html|csv|json] Default
: healthcheck_status html Context
: http/server/location A example as followed:
http {
server {
listen 80;
# status interface
location /status {
healthcheck_status;
}
...
}
Back to TOC
Todo List
Bugs and Patches
Please report bugs
or submit patches by
Back to TOC
Author
최 찬 희 (주장 훈).
Back to TOC
Copyright and License
The health check part is based on Yaoweibin's
healthcheck module nginx_upstream_check_module
();
This module is licensed under the BSD license.
Copyright (C) 2017-, by Changxun Zhou
Copyright (C) 2014 by Weibin Yao
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Back to TOC
See Also
Back to TOC
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.