Nginx 건강 검진
1. 현재 Nginx 는 두 가지 주류 의 건강 검진 모델 을 지원 합 니 다.
능 동 검사 모드
Nginx 서버 는 설 정 된 간격 에 따라 백 엔 드 의 upstreamserver 에서 백 엔 드 의 각 upstream 을 검증 하기 위해 검사 요청 을 보 냅 니 다.server 상태.서버 가 일정 횟수 이상 되 돌아 오지 못 하면 세 번 이상 서버 가 이상 하 다 고 표시 되 며 요청 을 서버 에 전송 하지 않 습 니 다.
일반적으로 백 엔 드 서버 는 이러한 건강 검 사 를 위해 저 소모 인 터 페 이 스 를 전문 적 으로 제공 해 야 한다.
패 시 브 검사 모드
Nginx 는 프 록 시 요청 과정 에서 모든 백 엔 드 서버 가 요청 에 대한 응답 상 태 를 자동 으로 모니터링 합 니 다. 만약 에 특정한 백 엔 드 서버 가 요청 에 대한 응답 상태 가 짧 은 시간 에 일정한 실패 횟수 를 누적 하면 Nginx 는 서버 이상 을 표시 합 니 다.이 서버 에 데 이 터 를 전송 하지 않 습 니 다.그러나 일정 시간 간격 으로 Nginx 는 백 엔 드 서버 에 반환 상 태 를 탐지 하기 위해 소량의 요청 을 전달 합 니 다.이 서버 의 복구 여 부 를 식별 할 수 있 도록 합 니 다.
백 엔 드 서버 는 건강 검진 인 터 페 이 스 를 전문 적 으로 제공 할 필요 가 없 지만, 이러한 방식 은 일부 사용자 가 요청 한 응답 을 실패 하 게 할 수 있 습 니 다. Nginx 는 백 엔 드 서비스 가 정상 으로 회복 되 었 는 지 소량의 요청 을 해 야 하기 때 문 입 니 다.
2. 현재 Nginx 를 사용 하여 건강 검진 을 실현 하 는 몇 가지 방식
1. 오픈 소스 모듈 nginx 사용upstream_check_module
원본 주소:https://github.com/yaoweibin/nginx_upstream_check_module
이것 은 내 가 현재 찾 은 원생 Nginx 가 개원 모듈 을 추가 함으로써 주동 적 인 건강 검 사 를 무료 로 실현 할 수 있 는 유일한 방법 이다.다음은 제 가 이런 방식 의 설치 와 배치 과정 을 상세 하 게 소개 하 겠 습 니 다.
2. 비 즈 니스 버 전 Nginx Plus 사용
https://www.nginx.com/products/nginx/
이런 방법 은 비용 을 받 아야 기술 지원 을 받 을 수 있다.
3. Nginx 대신 타 오 바 오 오픈 소스 텐 진 사용
http://tengine.taobao.org
이런 방식 도 무료 로 가능 하 다.
3. 여기 서 우 리 는 첫 번 째 방법의 실현 을 보 여 줍 니 다. 오픈 소스 모듈 nginx 를 사용 합 니 다.upstream_check_module
먼저 이 모듈 의 원본 패 키 지 를 다운로드 하여 Nginx 를 컴 파일 할 서버 에 올 립 니 다.
운영 체제 환경: Centos 6.8, 컴 파일 에 필요 한 개발 환경 이 기본적으로 설치 되 어 있 습 니 다.
1. Nginx 컴 파일 에 필요 한 패키지 설치
yum install pcre pcre-devel openssl openssl-devel -y
2. Nginx 버 전 을 선택 하고 컴 파일 설치 (컴 파일 하기 전에 Nginx 에 대응 하 는 패 치 를 하 는 것 을 기억 합 니 다)
#!/bin/bash
tar xf nginx-1.14.0.tar.gz
unzip nginx_upstream_check_module-master.zip
cd nginx-1.14.0
# , ,
patch -p1 < /root/nginx_upstream_check_module-master/check_1.14.0+.patch
./configure --user=www --group=www --prefix=/alidata/server/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --add-module=/root/nginx_upstream_check_module-master
make && make install
3. 설정 과 응용
# nginx.conf
user www www;
worker_processes 4;
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http {
# upstream , evalue
upstream evalue {
# , weight , Round Robin , weight
server 192.168.90.100:9999 weight=100;
server 192.168.90.101:9999 weight=100;
# interval=3000 3 , rise=3 3 , fall=5 5 , timeout=3000 3 , type=http http
check interval=3000 rise=3 fall=5 timeout=3000 type=http;
# check_http_send : url -> HEAD /api/v1/chivox/health HTTP/1.0
check_http_send "HEAD /api/v1/chivox/health HTTP/1.0\r
\r
";
#
check_http_expect_alive http_2xx http_3xx;
#check_http_send "GET /test3.html HTTP/2.0\r
\r
";
}
}
server {
listen 80;
location / {
proxy_pass http://evalue;
keepalive_timeout 0;
}
#
# check_status [html|csv|json]
# ,/status?format=html | /status?format=csv | /status?format=json
location /status {
check_status html;
access_log off;
}
location ~ /.svn/ {
deny all;
}
access_log /alidata/log/nginx/access/evalue.log json;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
linux2에 nginx 설치설치 가능한 nginx를 확인하고, 해당 nginx를 설치한다. localhost 혹은 해당 ip로 접속을 하면 nginx 화면을 볼 수 있다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.