운영 및 유지보수 엔진스 Nginx Proxy Manager와 WebSocket 간의 효율적인 통신 구현

Nginx Proxy Manager와 WebSocket 간의 효율적인 통신 구현

Sep 26, 2023 pm 02:46 PM
nginx websocket proxy

Nginx Proxy Manager与WebSocket的高效通信实现

Nginx 프록시 관리자(이하 NPM)는 여러 역방향 프록시 서버를 관리하는 간단하고 강력한 방법을 제공하는 Nginx 기반 프록시 관리 도구입니다. 최근 NPM을 사용할 때 NPM과 WebSocket 간의 효율적인 통신을 달성하는 방법에 대한 문제가 발생했습니다. 이 기사에서는 이 목표를 달성하면서 얻은 경험과 교훈을 공유하고 구체적인 코드 예제를 제공하겠습니다.

시작하기 전에 WebSocket에 대해 간단히 살펴보겠습니다. WebSocket은 단일 TCP 연결을 통한 전이중 통신을 위한 프로토콜입니다. HTTP와 달리 WebSocket을 사용하면 클라이언트가 요청하지 않고도 서버가 클라이언트에 적극적으로 데이터를 보낼 수 있습니다. 낮은 대기 시간과 높은 효율성으로 인해 WebSocket은 채팅 애플리케이션, 실시간 데이터 전송 등과 같은 실시간 애플리케이션에서 매우 널리 사용됩니다.

NPM은 Nginx를 사용하여 HTTP 및 HTTPS 요청을 처리하고 역방향 프록시 기능을 제공합니다. WebSocket과의 효율적인 통신을 위해서는 WebSocket 요청을 전달하고 관련 헤더 정보를 올바르게 처리하도록 NPM을 구성해야 합니다. 다음은 간단한 Nginx 구성 예입니다.

server {
    listen 80;
    server_name example.com;
    
    location / {
        proxy_pass http://backend;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }
    
    location /ws/ {
        proxy_pass http://backend;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }
    
    location /api/ {
        ...
    }
    
    location /admin/ {
        ...
    }
    
    ...

    upstream backend {
        server backend.example.com;
    }
}
로그인 후 복사

위 구성에서는 두 개의 위치 블록을 사용하여 WebSocket 요청을 처리했습니다. 첫 번째 위치 블록은 루트 경로 아래의 WebSocket 요청을 처리하는 데 사용되고, 두 번째 위치 블록은 /ws/로 시작하는 WebSocket 요청을 처리하는 데 사용됩니다. 이 두 위치 블록에서는 Proxy_pass 지시문을 사용하여 요청을 백엔드 서버로 전달하고 관련 HTTP 헤더 정보를 설정하여 WebSocket 요청이 백엔드 서버에 올바르게 전달될 수 있도록 합니다.

Nginx 구성 외에도 백엔드 서버에 WebSocket 관련 로직을 구현해야 합니다. 다음은 Node.js 및 WebSocket 라이브러리를 사용하여 구현된 간단한 예입니다.

const WebSocket = require('ws');

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

wss.on('connection', (ws) => {
    console.log('Client connected');

    ws.on('message', (message) => {
        console.log(`Received: ${message}`);
    });

    ws.send('Hello, client!');
});
로그인 후 복사

위 코드에서는 WebSocket 서버를 생성하고 연결 이벤트에서 새 연결을 처리합니다. 연결 이벤트 핸들러에서 클라이언트의 메시지를 처리하고 응답을 보낼 수 있습니다.

위의 Nginx 구성과 WebSocket 서버 코드를 사용하면 NPM과 WebSocket 간의 효율적인 통신을 달성할 수 있습니다. 예를 들어 NPM을 사용하여 HTTP 요청을 처리하고 특정 URL에 대한 WebSocket 요청을 백엔드 WebSocket 서버로 전달할 수 있습니다. 이렇게 하면 동일한 도메인 이름으로 HTTP와 WebSocket을 모두 사용할 수 있으며 WebSocket 요청은 다른 HTTP 요청처럼 NPM으로 관리할 수 있습니다.

요약하자면 NPM을 올바르게 구성하고 백엔드 WebSocket 서버의 코드를 구현하면 NPM과 WebSocket 간의 효율적인 통신을 달성할 수 있습니다. 이를 통해 NPM을 사용하는 동안 WebSocket 요청을 쉽게 처리하고 실시간 애플리케이션에 필요한 실시간 통신 기능을 구현할 수 있습니다. 이 기사의 코드 예제와 설명이 도움이 되기를 바랍니다.

위 내용은 Nginx Proxy Manager와 WebSocket 간의 효율적인 통신 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Nginx의 실행 상태를 확인하는 방법 Nginx의 실행 상태를 확인하는 방법 Apr 14, 2025 am 11:48 AM

nginx의 실행 상태를 보는 방법은 다음과 같습니다. PS 명령을 사용하여 프로세스 상태를보십시오. nginx 구성 파일 /etc/nginx/nginx.conf를 봅니다. Nginx 상태 모듈을 사용하여 상태 끝점을 활성화하십시오. Prometheus, Zabbix 또는 Nagios와 같은 모니터링 도구를 사용하십시오.

Nginx에서로드 밸런싱을 구성하는 방법 Nginx에서로드 밸런싱을 구성하는 방법 Apr 14, 2025 am 08:33 AM

로드 밸런싱을 위해 nginx를 구성하는 방법은 무엇입니까? 업스트림 서버 풀을 정의하고 서버 IP 및 포트를 지정합니다. 가상 호스트를 정의하고 연결을 듣고 상류 풀로 전달하십시오. 위치를 지정하고 요청을 일치시킨 후 상류 풀에 전달하십시오.

nginx에서 리디렉션하는 방법 nginx에서 리디렉션하는 방법 Apr 14, 2025 am 08:42 AM

Nginx를 통해 리디렉션하는 방법은 301 개의 영구 리디렉션 (업데이트 링크 또는 모바일 페이지)과 302 개의 임시 리디렉션 (오류 처리 또는 임시 변경)입니다. 리디렉션 구성에는 서버 블록에서 위치 지시 사항을 사용하여 고급 기능에는 정규 표현식 일치, 프록시 리디렉션 및 조건 기반 리디렉션이 포함됩니다. 일반적인 리디렉션 사용에는 URL 업데이트, 오류 처리, HTTP 리디렉션, HTTPS 리디렉션 및 사용자를 특정 국가 또는 언어 버전으로 안내하는 것이 포함됩니다.

nginx에서 스트림을 활성화하는 방법 nginx에서 스트림을 활성화하는 방법 Apr 14, 2025 am 09:45 AM

Nginx의 스트림 모듈을 활성화하는 방법은 무엇입니까? 스트림 모듈 활성화 6 단계가 필요합니다. 스트림 모듈 설치 구성 Nginx 스트림 서버 블록 구성 스트림 서버 옵션 작성 nginx 확인 활성화 활성화

Nginx403을 해결하는 방법 Nginx403을 해결하는 방법 Apr 14, 2025 am 10:33 AM

Nginx 403 금지 된 오류를 수정하는 방법은 무엇입니까? 파일 또는 디렉토리 권한을 확인합니다. 2. 확인 파일을 확인하십시오. 3. nginx 구성 파일 확인; 4. nginx를 다시 시작하십시오. 다른 가능한 원인으로는 방화벽 규칙, Selinux 설정 또는 응용 프로그램 문제가 있습니다.

Nginx에서 웹 사이트를 구축하는 방법 Nginx에서 웹 사이트를 구축하는 방법 Apr 14, 2025 am 11:21 AM

Nginx를 사용하여 웹 사이트를 구축하는 것은 5 단계로 수행됩니다. 1. Nginx 설치; 2. 주로 청취 포트, 웹 사이트 루트 디렉토리, 인덱스 파일 및 오류 페이지를 구성하는 nginx를 구성합니다. 3. 웹 사이트 파일 만들기; 4. 테스트 nginx; 5. SSL 암호화, 역 프록시,로드 밸런싱 및 캐싱과 같은 필요에 따라 고급 구성을 수행 할 수 있습니다.

Nginx 크로스 도메인의 문제를 해결하는 방법 Nginx 크로스 도메인의 문제를 해결하는 방법 Apr 14, 2025 am 10:15 AM

Nginx 크로스 도메인 문제를 해결하는 두 가지 방법이 있습니다. 크로스 도메인 응답 헤더 수정 : 교차 도메인 요청을 허용하고 허용 된 메소드 및 헤더를 지정하고 캐시 시간을 설정하는 지시문을 추가하십시오. CORS 모듈 사용 : 모듈을 활성화하고 CORS 규칙을 구성하여 크로스 도메인 요청, 메소드, 헤더 및 캐시 시간을 허용합니다.

Nginx 액세스 주소를 서버 IP로 설정하는 방법 Nginx 액세스 주소를 서버 IP로 설정하는 방법 Apr 14, 2025 am 11:36 AM

Nginx에서 서버 IP에 대한 액세스 주소를 설정하려면 서버 블록을 구성하거나 청취 주소를 설정하십시오 (예 : 192.168.1.10:80) 서버 이름 (예 : Server_name example.com www.example.com 등)을 설정하거나 변경 사항을 적용하려면 서버 IP 및 Reload Nginx를 비워 두십시오.

See all articles