실시간 통신을 달성하기 위한 Nginx 역방향 프록시 Websocket 구성 튜토리얼
개요:
이 기사에서는 Websocket과 실시간 통신을 달성하기 위해 Nginx를 통해 역방향 프록시를 구성하는 방법을 소개합니다. Websocket은 클라이언트와 서버 간의 전이중 실시간 통신을 가능하게 하는 최신 네트워크 통신 프로토콜입니다.
배경:
기존 HTTP 프로토콜에서는 클라이언트가 서버에 요청을 보내고 서버가 응답을 반환한 후 즉시 연결이 종료되므로 실시간 통신이 불가능합니다. Websocket 프로토콜은 이 문제를 해결하고 오래 지속되는 양방향 연결을 설정하여 클라이언트와 서버 간의 실시간 통신을 구현합니다.
단계:
먼저 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"을 자신의 백엔드 서버 주소와 포트로 바꾸세요.
구성 파일을 저장한 후 다음 명령을 실행하여 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!