>  기사  >  운영 및 유지보수  >  실시간 통신을 달성하기 위한 Nginx 역방향 프록시 Websocket 구성 튜토리얼

실시간 통신을 달성하기 위한 Nginx 역방향 프록시 Websocket 구성 튜토리얼

PHPz
PHPz원래의
2023-07-04 15:28:373976검색

실시간 통신을 달성하기 위한 Nginx 역방향 프록시 Websocket 구성 튜토리얼

개요:

이 기사에서는 Websocket과 실시간 통신을 달성하기 위해 Nginx를 통해 역방향 프록시를 구성하는 방법을 소개합니다. Websocket은 클라이언트와 서버 간의 전이중 실시간 통신을 가능하게 하는 최신 네트워크 통신 프로토콜입니다.

배경:

기존 HTTP 프로토콜에서는 클라이언트가 서버에 요청을 보내고 서버가 응답을 반환한 후 즉시 연결이 종료되므로 실시간 통신이 불가능합니다. Websocket 프로토콜은 이 문제를 해결하고 오래 지속되는 양방향 연결을 설정하여 클라이언트와 서버 간의 실시간 통신을 구현합니다.

단계:

  1. Nginx 설치:

먼저 Nginx가 서버에 설치되어 있는지 확인하세요. 설치되어 있지 않은 경우 운영 체제에 따라 해당 패키지 관리 도구를 사용하여 설치하시기 바랍니다.

  1. Nginx 역방향 프록시 구성:

Nginx 구성 파일(일반적으로 /etc/nginx/nginx.conf에 있음)을 열고 서버 섹션을 찾아 다음 구성을 추가합니다.

server {
    listen 80;
    server_name your.domain.com;

    location /websocket {
        proxy_pass http://backend_server:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

여기에 "/websocket" 클라이언트에서 요청한 "백엔드 서버의 포트 3000에 대한 경로 프록시입니다. 동시에 Nginx가 웹소켓 연결을 지원하도록 업그레이드 및 연결 헤더를 설정합니다.

"your.domain.com"을 자신의 도메인 이름으로 바꾸고 "http://backend_server:3000"을 자신의 백엔드 서버 주소와 포트로 바꾸세요.

  1. Nginx 다시 시작:

구성 파일을 저장한 후 다음 명령을 실행하여 Nginx를 다시 시작하세요.

sudo service nginx restart

이러한 방식으로 Nginx는 구성에 따라 역방향 프록시를 수행하고 Websocket 요청을 백엔드 서버로 전달합니다. .

샘플 코드:

다음은 Node.js 및 ws 라이브러리를 사용하는 간단한 Websocket 서버에 대한 샘플 코드입니다.

const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 3000 });

wss.on('connection', (ws) => {
    ws.on('message', (message) => {
        console.log('Received message: ', message);
        ws.send('Server received: ' + message);
    });

    ws.on('close', () => {
        console.log('Connection closed');
    });
});

이 샘플 코드는 Websocket 서버를 생성하고 포트 3000을 수신합니다. 클라이언트가 성공적으로 연결되면 수신됨 메시지가 인쇄되고 응답이 클라이언트로 다시 전송됩니다.

테스트:

이제 클라이언트에서 Websocket 연결을 생성하고 Nginx에서 구성한 도메인 이름에 연결할 수 있으며 경로는 "/websocket"입니다. 메시지를 시작한 후 서버로부터 응답을 받게 됩니다.

요약:

Nginx의 역방향 프록시 구성을 통해 웹소켓 요청을 백엔드 서버로 쉽게 전달하여 실시간 통신을 달성할 수 있습니다. 이는 뛰어난 유연성과 확장성을 통해 실시간 애플리케이션을 구축하는 데 편리함을 제공합니다.

프로덕션 환경에서 Nginx 및 백엔드 서버의 보안과 안정성을 보장하고 필요에 따라 조정하고 모니터링하세요. 이 글이 Nginx 역방향 프록시 Websocket을 이해하고 사용하는 데 도움이 되기를 바랍니다.

위 내용은 실시간 통신을 달성하기 위한 Nginx 역방향 프록시 Websocket 구성 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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