HAProxy에서 효과적인 상태 확인을 구현하는 방법

Haproxyeseo Hyogwajeog In Sangtae Hwag In Eul Guhyeonhaneun Bangbeob



효과적인 서버 상태 확인을 고려하지 않으면 로드 밸런서 역할을 하도록 HAProxy를 설정하는 것이 불완전합니다. 상태 확인을 구현하면 애플리케이션의 안정성과 가용성을 향상시키는 데 도움이 됩니다. HAProxy는 백엔드 서버의 상태가 사용하기에 적합한지 확인하는 상태 검사 구현을 지원합니다.

상태 확인을 통과한 서버만 순환에 추가됩니다. 이렇게 하면 상태 확인을 통과하지 못한 서버는 사용하도록 선택되지 않으므로 가동 중지 시간이 최소화됩니다. 이 게시물 전체에서 HAProxy의 상태 확인이 작동하는 방식과 효과적인 상태 확인을 구현하는 데 무엇이 필요한지 더 자세히 살펴보겠습니다. 의 시작하자!

HAProxy의 상태 확인이란 무엇입니까?

HAProxy를 구성할 때 한 가지 작업은 애플리케이션에 사용할 백엔드 서버를 지정하는 것입니다. 이렇게 하면 서버에 과부하가 걸리지 않도록 트래픽이 서버로 분산됩니다. 그러나 상태 확인은 서버가 괜찮은 경우에만 트래픽을 처리하도록 선택되었는지 확인하는 데 도움이 됩니다.







상태 점검은 각 서버에서 수행되며, 통과한 서버만 로드 밸런싱에 사용하기 위해 순환에 추가됩니다. 상태 확인은 TCP 또는 HTTP와 같은 요청을 백엔드 서버의 사전 정의된 엔드포인트로 전송하여 수행됩니다. 백엔드 서버에서 다시 전송한 상태 결과에 따라 상태가 결정됩니다. 예를 들어, 서버 상태는 UP 또는 DOWN을 표시하거나 서버가 정상임을 확인하는 ok 200 상태를 보낼 수 있습니다.



상태 확인을 구성할 때 상태 확인에 사용할 사전 정의된 엔드포인트가 있는지 확인하십시오. 엔드포인트를 설정하는 데 사용할 수 있는 다양한 옵션이 있습니다. 예를 들어 서버 상태에 따라 상태 코드나 메시지를 반환할 수 있습니다. 모든 상태 확인은 HAProxy 구성 파일의 백엔드 섹션에 정의됩니다. 구성 파일을 열고 프런트엔드 섹션을 만듭니다.



$sudo nano /etc/haproxy/haproxy.cfg

다음은 포트 80을 바인딩하고, 통계 페이지를 설정하고, 기본 백엔드를 지정하는 프런트엔드 섹션의 기본 예입니다.





다음 단계는 백엔드 섹션을 만드는 것입니다. 다음은 HAProxy에서 효과적인 상태 확인을 구현하는 방법에 대한 다양한 예입니다.



예 1: 효과적인 활성 상태 확인 구현

HAProxy에서 상태 확인을 구현하는 간단한 방법은 활성 상태 확인을 설정하는 것입니다. 이 옵션을 사용하면 HAProxy가 서버와의 연결을 시도합니다. 응답이 전송되지 않으면 서버가 비정상으로 간주되어 순환에서 제거됩니다. 활성 상태 확인을 구현하는 기본 방법은 HAProxy의 모든 서버 라인에 'check' 키워드를 추가하여 모두 확인하는 것입니다.

이 첫 번째 예는 작동하지만 상태 확인을 구현하는 가장 좋은 방법은 아닙니다. 게다가 기본 설정을 사용합니다. 예를 들어 inter로 표시된 확인 간격은 2초로 설정됩니다. 허용된 실패 확인 횟수인 Fall은 3으로 설정됩니다. 이러한 설정을 조정하려면 다음 예와 같이 원하는 간격과 검사 횟수를 지정하십시오.

예 2: HTTP 상태 확인 구현

HTTP 상태 확인을 통해 HAProxy는 'check' 키워드를 사용하여 모든 서버에 HTTP 요청을 보냅니다. 응답을 바탕으로 서버의 상태를 결정합니다. 성공적인 서버 응답의 예는 2xx 또는 3xx 범위에 속합니다. 200 OK와 같은 응답은 서버 상태가 양호하다는 것을 의미합니다.

이 예에서는 백엔드에 'option httpchk' 행을 추가합니다.

예 3: GET 요청 작업

HAProxy는 HTTP 요청 시 '/' 경로로 GET 요청을 보냅니다. 그러나 다른 경로에 엔드포인트를 구성한 경우 '/health'와 같은 URL 경로를 지정할 수 있으며 HAProxy는 해당 경로로 GET 요청을 보냅니다.

엔드포인트에 따라 서버는 응답을 사용하여 서버 상태를 확인합니다. 구현 방법은 다음과 같습니다.

예 4: GET 요청 경로 및 응답 상태 지정

엔드포인트를 사용하면 엔드포인트 GET 요청에서 예상되는 성공적인 응답을 지정하여 서버 상태를 확인할 수 있습니다. 이 예에서 GET 요청 경로는 '/health'이며, 서버가 로드 밸런싱 및 기타 작업을 처리하기에 좋은 상태인지 확인하기 위해 200 응답 상태를 기대합니다.

HAProxy 구성 파일을 수정한 후 HAProxy를 다시 시작하여 변경 사항을 적용하세요.

그게 다야! HAProxy에 효과적인 상태 확인을 구현했습니다. 통계 페이지에 액세스하거나 다음 명령으로 로그 파일을 확인하여 상태 확인이 예상대로 작동하는지 확인할 수 있습니다.

$ tail -f /var/log/haproxy.log

결론

다양한 방법으로 HAProxy에서 효과적인 상태 확인을 구현할 수 있습니다. 상태 확인은 HAProxy 구성 파일의 백엔드 섹션에서 구현되며 이 게시물에서는 이에 대한 방법에 대한 다양한 예를 제공했습니다. HAProxy에서 이상적인 방법을 확인하고 효과적인 헬스체크를 편안하게 구현해보세요.