지원 스트림 상류 건강 검사 (TCP/UDP/HTTP)를 지원하고 백엔드 서버 상태를 얻기 위해 HTTP 인터페이스를 제공합니다. "
이 모듈은 NGINX에 활성 백엔드 서버 건강 검사를 제공 할 수 있습니다 (점검 유형은 TCP/UDP/HTTP 지원).
git 클론 https://github.com/zhouchangxun/nginx/nginx.git git 클론 https://github.com/zhouchangxun/ngx_stream_upstream_check_module.git
cd nginx/; git apply ../ngx_stream_upstream_check_module/nginx-stable-12+.patch
./auto/configure-with-stream-add-module = ../ngx_stream_upstream_check_module/
&& 설치를 만듭니다
stream {
upstream tcp - cluster {
# simple round-robin
server 192.168 .0 .1 : 22 ;
server 192.168 .0 . 2 : 22 ;
check interval = 3000 rise = 2 fall = 5 timeout = 5000 default_down = true type = tcp ;
}
upstream udp - cluster {
# simple round-robin
server 192.168 .0 .3 : 53 ;
server 192.168 .0 . 4 : 53 ;
check interval = 3000 rise = 2 fall = 5 timeout = 5000 default_down = true type = udp ;
}
upstream http - cluster {
# simple round-robin
server 192.168 .0 .5 : 80 ;
server 192.168 .0 . 6 : 80 ;
check interval = 3000 rise = 2 fall = 5 timeout = 5000 type = http ;
check_keepalive_requests 100 ;
check_http_send "HEAD / HTTP/1.1 r n Connection: keep-alive r n r n " ;
check_http_expect_alive http_2xx http_3xx ;
}
server {
listen 522 ;
proxy_pass tcp - cluster ;
}
server {
listen 53 ;
proxy_pass udp - cluster ;
}
server {
listen 8080 ;
proxy_pass http - cluster ;
}
}
http {
server {
listen 80 ;
location / status {
l4check_status ;
}
}
}통사론:
점검 간격 = milliseconds [fall = count] [Rise = count] [timeout = milliseconds] [default_down = true | false] [type = tcp | udp | http] [port = check_port]
기본값 : interval = 30000 Fall = 5 Ris = 2 타임 아웃 = 1000 default_down = true type = tcp
컨텍스트 : 스트림/업스트림
이 명령은 백엔드 서버의 건강 검사 기능을 켤 수 있습니다.
간격 : 백엔드로 전송 된 건강 검사 패킷 사이의 간격.
FALL (FALL_COUNT) : 연속 실패의 수가 Fall_Count에 도달하면 서버가 다운로 간주됩니다.
Rise (Rise_Count) : 성공의 수가 Rise_count에 도달하면 서버가 상승하는 것으로 간주됩니다.
시간 초과 : 백엔드 건강 요청의 시간 초과.
default_down : 처음에 서버 상태를 설정합니다. 사실이라면 기본값이 다운되었음을 의미합니다. 그것이 거짓이라면, 그것은 올라갑니다. 기본값은 사실이므로 서버가 처음에는 사용할 수 없다고 생각하며 건강 검사 패키지가 특정 수의 성공적인 시간에 도달 한 후에 만 건강에 좋은 것으로 간주됩니다.
유형 : 건강 점검 패키지 유형은 이제 다음 유형을 지원합니다.
포트 : 백엔드 서버의 확인 포트를 지정하십시오. 실제 서비스와 다른 백엔드 서버의 포트를 지정할 수 있습니다. 예를 들어, 백엔드는 포트 443과 함께 응용 프로그램을 제공합니다. 포트 80의 상태를 확인하여 백엔드의 건강 상태를 결정할 수 있습니다. 기본값은 0이므로 백엔드 서버에서 제공 한 포트와 동일합니다.
구문 : check_keepalive_requests request_num
기본값 : 1
컨텍스트 : 스트림/업스트림
이 명령어는 연결로 전송 된 요청 수를 구성 할 수 있고 기본값은 1이므로 NGINX는 하나의 요청을 완료 한 후 연결을 닫습니다.
구문 : check_http_send http_packet
기본값 : "get / http / 1.0 r n r n"
컨텍스트 : 스트림/업스트림
이 지침은 HTTP Health Check Packet에서 보낸 요청 컨텐츠를 구성 할 수 있습니다. 전송 된 데이터의 양을 줄이려면 "헤드"방법을 사용하는 것이 좋습니다.
건강 점검을 위해 긴 연결을 사용하는 경우 "Head / Http / 1.1 r nconnection : Keep-alive r n r n"과 같은이 명령에 Keep-Alive 요청 헤더를 추가해야합니다. 동시에, "get"메소드를 사용할 때 요청 된 URI의 크기는 너무 크지 않아야 1 간격 내에 전송할 수 있도록해야합니다. 그렇지 않으면 건강 검사 모듈에 의해 백엔드 서버 또는 네트워크 예외로 간주됩니다.
구문 : check_http_expect_alive [http_2xx | http_3xx | http_4xx | http_5xx]
기본값 : http_2xx | http_3xx
컨텍스트 : 스트림/업스트림
이 지침은 HTTP 응답의 성공적인 상태를 지정하며 기본적으로 2xx 및 3xx의 상태는 건강한 것으로 간주됩니다.
구문 : check_shm_size 크기
기본값 : 1m
Contex : 스트림
모든 백엔드 서버 건강 검사 상태는 공유 메모리에 저장 되며이 명령어는 공유 메모리의 크기를 설정할 수 있습니다. 기본값은 1m입니다. 서버가 1,000 개 이상이고 구성 중에 오류가있는 경우 메모리 크기를 확장해야 할 수도 있습니다.
구문 : l4check_status [html | csv | json]
기본값 : l4check_status html
컨텍스트 : HTTP/서버/위치