Nginx 로그 와 모니터링 - TCP 건강 모니터링
7885 단어 Nginx
1. 개술
Nginx 와 Nginx Plus 는 TCP upstream 서버 를 계속 테스트 하여 고장 난 서버 를 사용 하지 않도록 하고 복 구 된 서버 를 부하 균형 그룹 에 점차적으로 추가 할 수 있 습 니 다.
2. 선 결 조건 전제조건
stream {
...
upstream stream_backend {
server backend1.example.com:12345;
server backend2.example.com:12345;
server backend3.example.com:12345;
}
...
}
stream {
...
server {
listen 12345;
proxy_pass stream_backend;
}
...
}
3. 수 동적 TCP 건강 검진
upstream 서버 에 연결 하려 는 시도 가 시간 을 초과 하거나 실패 하면 Nginx 는 서버 를 unavailable 로 표시 하고 지정 한 시간 내 에 이 서버 에 요청 을 보 내 는 것 을 중단 합 니 다.server 명령 에 다음 인 자 를 추가 하면 Nginx 가 서버 를 사용 할 수 없다 고 생각 하 는 지 정의 할 수 있 습 니 다.
연결 이 10 초 동안 시간 을 초과 하거나 실패 하면 Nginx 는 이 서버 를 10 초 동안 사용 할 수 없 도록 설정 합 니 다.다음 예 는 30 초 동안 실패 하거나 시간 을 최소 2 번 초과 해 야 사용 할 수 없다 고 생각 합 니 다.
upstream stream_backend {
server backend1.example.com:12345 weight=5;
server backend2.example.com:12345 max_fails=2 fail_timeout=30s;
server backend3.example.com:12346 max_conns=3;
}
4. 능 동 TCP 건강 검진
4.1 건강 검진 의 특성
각종 고장 유형 을 측정 하기 위해 건강 검 사 를 설정 할 수 있다.예 를 들 어 Nginx Plus 는 upstream 서버 의 응답 능력 을 지속 적 으로 테스트 하고 고장 난 서버 를 사용 하지 않도록 할 수 있다.
Nginx Plus 는 업 스 트림 서버 마다 특별한 건강 검진 요청 을 보 내 고 응답 이 특정 조건 을 충족 하 는 지 확인 합 니 다.서버 에 연결 되 지 않 으 면 건강 검진 에 실패 하고 서버 가 고장 난 것 으로 생각 합 니 다.Nginx Plus 는 클 라 이언 트 를 고장 난 서버 에 프 록 시 로 연결 하지 않 습 니 다.서버 팀 이 몇 개의 건강 검 사 를 정의 하면 모든 건강 검사 가 실패 하면 관련 서버 가 고장 으로 간 주 됩 니 다.
4.2 건강 검진 시작
4.2.1 공유 메모리 영역 지정
zone - 공유 메모리 영역 은 Nginx 의 여러 작업 프로 세 스 사이 에서 카운터 와 연 결 된 상태 정 보 를 공유 할 수 있 습 니 다.upstream 서버 그룹 에 zone 명령 을 추가 하여 이름과 메모리 크기 를 지정 합 니 다.
stream {
...
upstream stream_backend {
zone stream_backend 64k;
server backend1.example.com:12345;
server backend2.example.com:12345;
server backend3.example.com:12345;
}
...
}
4.2.2 건강 검진 시작
upstream 서버 그룹 에 연 결 된 server 컨 텍스트 에
health_check
와 health_check_timeout
명령 을 추가 합 니 다.stream {
...
server {
listen 12345;
proxy_pass stream_backend;
health_check;
health_check_timeout 5s;
}
...
}
health_check
건강 검진 기능 을 켜 라. health_check_timeout
건강 검진 시 덮어 쓰기 proxy_timeout
의 값 은 건강 검진 시간 초과 로 짧게 설정 해 야 하기 때문이다.4.3 미세 조정 TCP 건강 검진
기본적으로 Nginx Plus 는 upstream 서버 그룹의 모든 서버 에 5 초 간격 으로 연결 시 도 를 합 니 다.연결 이 되 지 않 으 면 Nginx Plus 는 건강 검진 에 실패 했다 고 보고 해당 서버 를 고장 으로 표시 하고 클 라 이언 트 연결 을 이 서버 에 보 내 는 것 을 중단 합 니 다.
기본 행동 을 바 꾸 려 면
health_check
명령 에 아래 의 인 자 를 포함 할 수 있 습 니 다.stream {
...
server {
listen 12345;
proxy_pass stream_backend;
health_check interval=10 passes=2 fails=3;
}
...
}
이 사례 에 서 는 TCP 건강 검진 의 간격 이 10 초 로 커 졌 고, 서버 는 3 회 연속 건강 검진 에 실 패 했 을 때 고장 난 것 으로 간주 되 며, 서버 는 2 회 연속 건강 검진 을 거 쳐 야 다시 사용 가능 한 것 으로 여 겨 진다.
기본적으로 Nginx Plus 는 upstream 블록 에 server 명령 이 지정 한 포트 에 건강 검진 메 시 지 를 보 냅 니 다.건강 검진 에 사용 할 다른 포트 를 지정 할 수 있 습 니 다. 이것 은 호스트 의 여러 서 비 스 를 동시에 감시 할 때 특히 유용 합 니 다.
health_check
명령 의 port 인 자 를 통 해 기본 포트 를 덮어 쓸 수 있 습 니 다.stream {
...
server {
listen 12345;
proxy_pass stream_backend;
health_check port=8080;
}
...
}
4.4 match 설정 블록
서버 가 건강 검진 에 대한 응답 을 검증 하기 위해 일련의 테스트 를 설정 할 수 있 습 니 다.이 테스트 들 은 stream 컨 텍스트 의 match 설정 블록 에 정의 되 어 있 습 니 다.match 설정 블록 을 지정 할 때 이름 tcptest:
stream {
...
match tcp_test {
...
}
}
그리고
health_check
명령 에서 match 매개 변 수 를 통 해 어떤 match 블록 을 사용 하여 응답 을 검증 해 야 하 는 지 알려 줍 니 다.stream {
...
server {
listen 12345;
health_check match=tcp_test;
proxy_pass stream_backend;
}
...
}
건강 검진 을 성공 적 으로 실행 하 는 조건 이나 테스트 는 set 와 send 매개 변수 로 설정 되 어 있 습 니 다 (The conditions or tests under which a health check succeeds are set with send and expect parameters).
이 두 매개 변 수 는 서로 다른 조합 을 가 질 수 있 지만 매번 에 하나의 send 와 하나의 expect 만 지정 할 수 있 습 니 다.
match pop3 {
expect ~* "\+OK";
}
match pop_quit {
send QUIT;
}
stream {
...
upstream stream_backend {
zone upstream_backend 64k;
server backend1.example.com:12345;
}
match http {
send "GET / HTTP/1.0\r
Host: localhost\r
\r
";
expect ~* "200 OK";
}
server {
listen 12345;
health_check match=http;
proxy_pass stream_backend;
}
}
이 예 에서 건강 검진 을 통과 하려 면 HTTP 요청 을 반드시 서버 에 보 내 고 서버 에서 돌아 온 결과
200 OK
를 포함 하여 성공 적 인 HTTP 응답 임 을 표시 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.