WebSocket 연결을 위해 HAProxy를 구성하는 방법

Websocket Yeongyeol Eul Wihae Haproxyleul Guseonghaneun Bangbeob



WebSocket 애플리케이션은 클라이언트와 서버 간에 실시간 양방향 통신을 제공합니다. WebSocket 연결을 사용하더라도 서버 과부하를 방지하기 위해 트래픽을 분산하는 방법이 필요합니다. 이로 인해 다운타임과 가용성이 저하됩니다.

HAProxy는 역방향 프록시로도 작동하는 안정적인 무료 로드 밸런서의 한 예입니다. HAProxy를 사용하여 서버 부하를 최소화하는 동시에 특히 실시간 데이터 전송 시 WebSocket의 기능을 더 잘 활용하도록 WebSocket 연결용 HAProxy를 구성할 수 있습니다. 이 게시물은 WebSocket 연결을 위해 HAProxy를 구성하는 데 필요한 모든 단계를 제공합니다.

WebSocket 연결을 위해 HAProxy를 구성하는 방법에 대한 단계별 가이드

WebSocket 연결을 사용하면 서버와 클라이언트 통신이 오래 지속됩니다. 서버나 클라이언트가 이를 닫기로 결정할 때까지 지속됩니다. 따라서 로드 밸런서를 사용하여 작업할 수 있는 방법이 있으면 서버가 과부하될 경우 트래픽을 다른 서버로 분산할 수 있습니다. 이렇게 하면 클라이언트와 서버가 낮은 대기 시간으로 중단 없이 오래 지속되는 연결을 누릴 수 있습니다.







1. HAProxy 설치

WebSocket 연결을 위해 HAProxy를 구성하는 첫 번째 단계는 HAProxy가 설치되어 있는지 확인하는 것입니다. 이미 설치한 경우 이 단계를 건너뛰세요. 그렇지 않으면 다음 명령을 실행하여 설치하십시오.



$ sudo 적절한 설치 하프록시



2. HAProxy 구성 편집

WebSocket 연결을 위해 HAProxy를 구성하려면 WebSocket 연결을 지원하도록 HAProxy 구성을 편집해야 합니다. 'Defaults' 섹션을 수정하고 'Frontend' 및 'Backend' 섹션을 생성해야 합니다.





다음과 같이 텍스트 편집기를 사용하여 HAProxy 구성을 엽니다.

$ sudo 나노 / / 하프록시 / haproxy.cfg

'기본값' 섹션에서 다음 이미지에 표시된 대로 수정합니다. 먼저, HTTP 연결로 작업 중임을 지정하고 로그 파일을 보낼 위치를 정의합니다. 다음으로 다양한 활동에 대한 시간 제한을 설정합니다. 예를 들어 연결 시간 초과는 서버에 대한 연결 시도에 소요되는 최대 시간입니다. 최대 시간에 도달하면 연결이 실패한 것으로 간주되어 다시 시도할 수 있습니다.



이 경우 연결 시간 초과를 5000밀리초로 설정했습니다. 귀하의 사례에 가장 적합하게 표시되는 방법에 대한 시간 초과를 조정할 수 있습니다. 애플리케이션에 따라 조정하고 WebSocket 세션의 지속 시간과 예상 지속 시간을 기억하세요.

다음으로 WebSocket 연결에 사용할 포트와 참조할 백엔드 서버를 바인딩하는 '프런트엔드' 섹션을 만들어야 합니다. 이 경우 포트 80을 지정하고 HAProxy를 모니터링하기 위해 '통계' 페이지에 액세스할 수 있는 URL을 제공합니다. 마지막으로 로드 밸런싱에서 참조할 백엔드 섹션을 정의합니다.

'백엔드' 섹션에서는 라운드 로빈을 사용하여 로드를 분산합니다. 'option forward for'는 연결 요청을 보낼 때 클라이언트의 IP 주소가 포함된 'X-Forward-For' 헤더를 포함하도록 HAProxy에 지정합니다. 이렇게 하면 백엔드 서버가 올바른 클라이언트 IP를 얻게 됩니다.

'옵션 http-server-close'는 유휴 연결이 서버 리소스를 차지하지 않도록 제거하여 리소스를 제한합니다. WebSocket 연결은 수명이 길지만, 불필요한 리소스 낭비를 방지하려면 유휴 상태의 장기 연결을 확인하고 닫아야 합니다.

마지막으로 트래픽을 분산하는 데 사용할 백엔드 서버를 추가합니다. 서버에 올바른 IP 주소를 제공하고 다음 이미지의 IP 주소를 바꾸십시오.

이제 HAProxy가 WebSocket 연결을 위해 구성되었습니다. 변경 사항을 저장하고 파일을 닫습니다.

3. 타당성 테스트

HAProxy를 다시 시작하기 전에 빠른 명령을 실행하여 파일이 유효하고 오류가 없는지 확인할 수 있습니다. 이를 위해 다음 명령을 실행하십시오.

$ sudo 하프록시 -씨 -에프 / / 하프록시 / haproxy.cfg

4. WebSocket 연결 다시 시작 및 테스트

파일이 유효하면 HAProxy 서비스를 다시 시작합니다.

그게 다야. WebSocket 연결을 위해 HAProxy를 구성했습니다. 연결을 테스트하여 모든 WebSocket 트래픽이 올바르게 전달되는지 확인할 수 있습니다.

결론

WebSocket 연결을 위해 HAProxy를 구성하는 것은 특히 웹 관리자가 원하는 솔루션입니다. 이 게시물에서는 프로세스를 자세히 설명하고 귀하가 편안하게 따라하고 귀하의 사례에서 동일한 구현을 관리할 수 있도록 단계와 예를 제공했습니다. 각 단계를 진행하면서 이를 구현하기 위한 개념과 프로세스를 이해했는지 확인하세요.