WebSocket 애플리케이션을 사용하면 클라이언트와 서버 간의 실시간 양방향 통신이 가능합니다. WebSocket 연결을 사용하더라도 서버 과부하로 인해 서비스가 중단되고 가용성이 저하되는 것을 방지하려면 효과적인 트래픽 관리 메커니즘이 여전히 필요합니다.
HAProxy는 역방향 프록시로도 작동하는 안정적인 무료 로드 밸런서입니다. WebSocket 연결을 지원하도록 HAProxy를 구성하면 WebSocket의 실시간 데이터 전송 특성을 더 잘 활용하고 서버 부하를 줄일 수 있습니다. 이 문서에서는 WebSocket 연결을 지원하도록 HAProxy를 구성하는 자세한 단계를 설명합니다.
WebSocket 연결을 통해 서버와 클라이언트 간의 통신은 당사자 중 한 쪽이 연결을 적극적으로 종료할 때까지 지속됩니다. 서버 로드가 너무 높을 때 트래픽이 다른 서버에 균등하게 분산될 수 있도록 로드 밸런서 접근 방식을 사용할 수 있습니다. 이러한 방식으로 클라이언트와 서버는 지속적인 연결을 유지하고 지연 시간이 짧은 통신 환경을 누릴 수 있습니다.
WebSocket 연결을 위해 HAProxy를 구성하는 첫 번째 단계는 HAProxy가 설치되어 있는지 확인하는 것입니다. 아직 설치하지 않았다면 다음 단계에 따라 설치하세요.
$sudo apt—haproxy 설치
WebSocket 연결이 HAProxy를 통과하려면 WebSocket 연결을 지원하도록 HAProxy 구성을 조정해야 합니다. 여기에는 "서버" 섹션을 변경하고 "프런트엔드" 및 "백엔드" 섹션을 설정하는 작업이 포함됩니다.
아래 표시된 대로 텍스트 편집기를 사용하여 HAProxy 구성을 엽니다.
$sudo nano/etc/haproxy/haproxy.cfg
'삭제' 섹션에서 아래 이미지와 같이 수정하세요. 먼저, HTTP 연결을 사용하고 있음을 지정하고 로그 파일을 보낼 위치를 정의합니다. 다음으로 다양한 활동에 대한 시간 제한을 설정합니다. 예를 들어, 연결 시간 초과는 서버에 연결하는 데 걸리는 최대 시간입니다. 최대 시간에 도달하면 연결이 실패한 것으로 간주되어 다시 시도할 수 있습니다.
이 경우 연결 시간 초과를 5000밀리초로 설정했습니다. 상황에 따라 시간 초과를 조정할 수 있습니다. WebSocket 세션 기간과 예상 수명을 염두에 두고 애플리케이션에 따라 조정하세요.
다음으로 WebSocket 연결에 사용되는 포트와 참조된 백엔드 서버를 바인딩하는 "프런트엔드" 부분을 만들어야 합니다. 이 경우 포트 80을 지정하고 HAProxy를 모니터링하기 위해 "통계" 페이지에 액세스할 수 있는 URL을 제공합니다. 마지막으로 로드 밸런싱에서 참조되는 백엔드 부분을 정의합니다.
"백엔드" 부분에서는 라운드 로빈 스케줄링을 사용하여 로드를 분산합니다. "option forward for"는 클라이언트의 IP 주소가 포함된 연결 요청을 보낼 때 HAProxy가 "X-Forward-For" 헤더를 포함하도록 지정합니다. 이렇게 하면 백엔드 서버가 올바른 클라이언트 IP를 얻게 됩니다.
"옵션 http_server_close"는 서버 리소스를 차지하는 유휴 연결을 제거하여 리소스를 제한합니다. WebSocket 연결은 수명이 길지만, 유휴 상태인 장기 연결이 있는지 확인하고 불필요한 리소스 낭비를 방지하기 위해 해당 연결을 닫아야 합니다.
마지막으로 트래픽 분산에 사용할 백엔드 서버를 추가합니다. 서버에 올바른 IP 주소를 제공하고 아래 이미지의 IP 주소를 바꾸십시오.
이제 HAProxy가 WebSocket 연결을 위해 구성되었습니다. 변경 사항을 저장하고 파일을 닫습니다.
HAProxy를 다시 시작하기 전에 빠른 명령을 실행하여 파일이 유효하고 오류가 없는지 확인할 수 있습니다. 이렇게 하려면 다음 명령을 실행하세요:
$sudo haproxy-c-f/etc/haproxy/haproxy.cfg
파일이 유효해지면 HAProxy 서비스를 다시 시작하세요.
그렇습니다. WebSocket 연결을 위해 HAProxy를 구성했습니다. 연결을 테스트하여 모든 WebSocket 트래픽이 올바르게 전달되는지 확인할 수 있습니다.
WebSocket 연결을 위해 HAProxy를 구성하는 것은 특히 웹 관리자 사이에서 인기 있는 솔루션입니다. 이 문서에서는 프로세스를 자세히 설명하고 귀하의 사례에서 동일한 프로세스를 편안하게 따르고 관리할 수 있도록 단계와 예를 제공합니다. 각 단계를 통해 개념과 구현 프로세스를 이해했는지 확인하세요.
위 내용은 WebSocket 연결을 위해 HAProxy를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!