>  기사  >  운영 및 유지보수  >  Nginx 서버 상태 확인 구성을 구현하는 방법

Nginx 서버 상태 확인 구성을 구현하는 방법

WBOY
WBOY원래의
2023-11-08 10:39:351198검색

Nginx 서버 상태 확인 구성을 구현하는 방법

Nginx의 서버 상태 확인 구성을 구현하려면 특정 코드 예제가 필요합니다.

Nginx는 고성능 웹 서버이자 역방향 프록시 서버로, 인터넷 비즈니스가 발전함에 따라 서버의 고가용성과 상태 모니터링이 필요합니다. 점점 더 중요해지고 있습니다. 이 문서에서는 서버 상태 확인을 구현하고 특정 코드 예제를 제공하도록 Nginx를 구성하는 방법을 소개합니다.

1. 서버 헬스 체크의 원리

Nginx는 헬스 체크를 할 때 주로 백엔드 서버에 HTTP 요청을 보내서 서버의 헬스 상태를 감지합니다. 서버가 요청에 정상적으로 응답하면(상태 코드는 2xx) 서버는 정상으로 간주되고 서버가 응답하지 않으면(시간 초과 또는 상태 코드가 5xx) 서버를 사용할 수 없는 것으로 간주됩니다. 서버를 다시 사용할 수 있을 때까지 서버로의 요청 전달을 중지합니다.

2. 상태 확인 구성

1. 업스트림 구성

상태 확인은 일반적으로 업스트림 구성 블록에서 수행됩니다. upstream은 백엔드 서버 세트를 정의하고 이러한 서버에 요청을 배포하는 Nginx 모듈입니다. 다음은 간단한 업스트림 구성 예입니다.

upstream backend {
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}

2. 상태 확인 매개변수 구성

업스트림 구성 블록에서 일부 매개변수를 추가하여 상태 확인 동작을 구성할 수 있습니다. 예를 들어 확인 간격, 최대 실패 횟수, 시간 초과 등을 지정할 수 있습니다. 다음은 일반적으로 사용되는 상태 확인 매개변수의 예입니다.

upstream backend {
    server backend1.example.com max_fails=3 fail_timeout=30s;
    server backend2.example.com max_fails=3 fail_timeout=30s;
    server backend3.example.com max_fails=3 fail_timeout=30s;
}

위 구성에서 max_fails는 최대 실패 횟수를 지정하고, failure_timeout은 제한 시간을 지정합니다. 서버가 최대 연속 실패 횟수보다 더 많이 실패하면 사용할 수 없는 것으로 간주됩니다. Nginx는 더 이상 서버에 요청을 전달하지 않으며 시간 초과 기간 동안 서버에 대한 요청 전달을 일시 중지합니다.

3. 상태 확인 요청 구성

Nginx는 백엔드 서버에 HTTP 요청을 보내 상태 확인을 수행합니다. 상태 확인은 위치 블록을 정의하고 상태 확인 요청의 경로와 응답 코드를 구성하여 구현할 수 있습니다. 다음은 상태 확인 요청 구성 예시입니다.

location /healthcheck {
    proxy_pass http://backend;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
}

위 구성에서 /healthcheck는 상태 확인 요청 경로이고, Proxy_pass는 확인 요청을 전달할 대상 서버를 지정합니다.

4. 상태 확인 상태 구성

Nginx는 Proxy_next_upstream 지시어를 통해 상태 확인 상태를 구성합니다. 모든 서버를 사용할 수 없는 경우 Nginx는 사용자 정의 응답 코드를 반환하도록 구성하거나 오류 페이지를 클라이언트에 직접 반환할 수 있습니다. 다음은 헬스 체크 상태 설정 예시입니다.

http {
    upstream backend {
        server backend1.example.com max_fails=3 fail_timeout=30s;
        server backend2.example.com max_fails=3 fail_timeout=30s;
        server backend3.example.com max_fails=3 fail_timeout=30s;
        check interval=5s rise=2 fall=3 timeout=2s;
    }

    server {
        listen 80;
        server_name example.com;

        location /healthcheck {
            proxy_pass http://backend;
            proxy_http_version 1.1;
            proxy_set_header Connection "";
        }

        error_page 502 = /custom_502.html;
        location = /custom_502.html {
            root /usr/share/nginx/html;
            internal;
        }

        proxy_next_upstream error timeout invalid_header http_502;
    }
}

위 설정에서 check 간격은 확인 간격을 지정하고, 상승은 연속 성공 횟수를 지정하고, fall은 연속 실패 횟수를 지정하고, timeout은 시간 초과를 지정합니다. 이러한 매개변수는 상태 확인 동작을 구성하는 데 사용됩니다.

위 구성으로 Nginx 서버 상태 확인을 구현할 수 있습니다.

요약: 서버 상태 점검은 높은 서비스 가용성을 보장하는 열쇠입니다. Nginx의 상태 확인 매개변수 및 요청을 구성하면 백엔드 서버의 상태를 효과적으로 모니터링하고 서버를 사용할 수 없게 되면 서버에 대한 요청 전달을 자동으로 중지할 수 있습니다. 이 문서에 제공된 구체적인 구성 예가 도움이 되기를 바랍니다.

위 내용은 Nginx 서버 상태 확인 구성을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.