현재 위치: > 최신 기사 목록> Nginx 구성 WebSocket 프록시에 대한 자세한 설명 : 실시간 커뮤니케이션 지원

Nginx 구성 WebSocket 프록시에 대한 자세한 설명 : 실시간 커뮤니케이션 지원

M66 2025-07-09

WebSocket 프로토콜은 무엇입니까?

WebSocket은 클라이언트와 서버 간의 지속적인 연결을 통해 실시간 데이터의 양방향 전송을 달성 할 수있는 TCP 기반의 이중 곡물 통신 프로토콜입니다. 기존의 HTTP 폴링과 비교할 때 WebSocket은 인스턴트 커뮤니케이션 및 실시간 푸시와 같은 시나리오에서 효율성이 높고 대기 시간이 높습니다.

Nginx를 사용하여 WebSocket을 프록시하는 이유는 무엇입니까?

실제 배치에서는 종종로드 밸런싱, 보안 액세스 제어, 경로 전달 및 기타 기능을 처리하기 위해 Nginx를 프론트 엔드 프록시 서버로 사용해야합니다. WebSocket 프로토콜을 지원하기 위해서는 연결을 백엔드 서비스로 안정적이고 지속적으로 전달할 수 있도록 NGINX의 추가 구성이 필요합니다.

nginx를 설치하십시오

먼저 NGINX가 서버에 설치되어 있는지 확인하십시오. 패키지 관리 도구를 통해 설치할 수 있습니다.

sudo apt install nginx # debian/ubuntu 시스템 sudo yum 설치 nginx # centos 시스템

설치가 완료되면 Nginx -V를 사용하여 버전을보고 설치가 성공적으로 확인할 수 있습니다.

WebSocket을 지원하도록 nginx를 구성하십시오

다음으로, nginx 구성 파일, 일반적으로 /etc/nginx/nginx.conf 의 구성 파일 또는 사이트-가능하게 수정해야합니다.

맵과 업스트림을 구성하십시오

지도 $ http_upgrade $ connection_upgrade {
    기본 업그레이드;
    '' 닫다;
}

상류 백엔드 {
    서버 127.0.0.1:8080;
}

이 구성의 목적은 WebSocket 연결의 업그레이드 헤더에 대한 매핑을 설정하고 백엔드 응용 프로그램의 주소를 지정하는 것입니다.

서버 블록에서 위치를 구성하십시오

위치 /웹 소켓 {
    proxy_pass http : // 백엔드;
    proxy_http_version 1.1;
    proxy_set_header 업그레이드 $ http_upgrade;
    proxy_set_header 연결 $ connection_upgrade;
}

이 구성은 /WebSocket 경로에 백엔드에 대한 요청을 전달하고 필요한 헤더 정보를 전달하여 WebSocket 핸드 셰이크 프로세스를 원활하게 완료 할 수 있도록합니다.

nginx를 다시 시작하여 구성이 적용되도록합니다

구성이 완료되면 다음 명령을 실행하여 Nginx 서비스를 다시 시작하십시오.

Sudo Service Nginx 재시작

구성이 올바른 경우 Nginx는 WebSocket 연결 전달을 지원합니다.

WebSocket 연결 테스트

브라우저 또는 기타 클라이언트 도구를 통해 WebSocket이 성공적으로 연결되어 있는지 테스트 할 수 있습니다. 기본 JavaScript 예는 다음과 같습니다.

var ws = new WebSocket ( "ws : // your_domain/websocket");

ws.onopen = function () {
    Console.log ( "WebSocket에 연결");
};

ws.onmessage = function (이벤트) {
    Console.log ( "수신 된 메시지 :" + event.data);
};

ws.onclose = function () {
    Console.log ( "WebSocket에서 분리 된");
};

위의 코드를 HTML에 포함시키고 브라우저에서 열린 후 콘솔이 연결 상태를 표시 할 수 있는지 확인하십시오.

요약

Nginx 프록시 WebSocket을 구성함으로써 고성능의 안정적인 실시간 통신 지원을 달성 할 수 있습니다. Nginx 자체는 WebSocket Logic을 처리하지 않으며 연결을 전달하고 프로토콜 관련 헤더를 처리 할 책임이 있습니다. 백엔드에는 여전히 WebSocket 서비스 기능이 필요합니다. 최신 웹 애플리케이션을 배포 할 때는 Nginx의 프록시 기능과 백엔드 WebSocket 서비스를 결합하는 것이 실시간 데이터 상호 작용에 이상적인 선택입니다.