>  기사  >  운영 및 유지보수  >  Nginx 프록시 관리자를 사용하여 웹소켓 프록시를 구현하는 방법

Nginx 프록시 관리자를 사용하여 웹소켓 프록시를 구현하는 방법

WBOY
WBOY원래의
2023-09-27 13:46:491356검색

如何使用Nginx Proxy Manager实现Websockets代理

Nginx 프록시 관리자를 사용하여 웹소켓 프록시를 구현하는 방법

웹소켓은 양방향 통신이 필요한 애플리케이션에 적합한 실시간 통신 프로토콜입니다. Nginx 프록시 관리자(줄여서 NPM)는 여러 역방향 프록시 리소스를 관리하고 구성하는 데 사용할 수 있는 Nginx 기반 프록시 서버입니다. 이 기사에서는 NPM을 사용하여 웹소켓 프록시를 구현하는 방법을 소개하고 특정 코드 예제를 제공합니다.

  1. NPM 설치

먼저 NPM을 설치해야 합니다. Ubuntu 시스템에서는 다음 명령을 사용하여 설치할 수 있습니다:

sudo apt-get update
sudo apt-get install npm
  1. Configure NPM

NPM을 설치한 후 몇 가지 구성을 수행해야 합니다. 먼저 NPM 설치 디렉터리(일반적으로 /usr/share/nginx/html)를 입력한 다음 config.json이라는 파일을 만들어 프록시 서버를 구성합니다. /usr/share/nginx/html,然后创建一个名为 config.json的文件,用来配置代理服务器。

config.json 文件中,我们可以配置多个代理服务器。在这个例子中,我们配置一个名为 websocket 的代理服务器,将所有接收到的Websockets请求代理到指定的目标服务器。

下面是一个配置的例子:

{
  "proxies": {
    "websocket": {
      "name": "Websockets Proxy",
      "ssl": false,
      "host": "ws://localhost:8000",
      "port": 80,
      "path": "/websocket",
      "proxyType": "websocket"
    }
  }
}

上述配置中,我们指定了代理服务器的名称、是否使用SSL、目标服务器的主机和端口、URL路径以及代理类型。

  1. 启动NPM

配置完成后,我们就可以启动NPM了。在终端中进入NPM的安装目录,然后运行如下命令:

sudo npm start

此时,NPM会监听在默认的80端口上,开始代理请求。

  1. 测试Websockets代理

现在我们已经完成了NPM的配置和启动,接下来测试一下我们的Websockets代理是否正常工作。

首先,准备一个简单的Websockets服务器,可以使用Node.js进行搭建。下面是一个示例代码:

const WebSocket = require('ws');

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

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

  ws.send('Connected to server.');
});

在终端中运行上述代码,启动Websockets服务器。

接下来,在浏览器中访问NPM的管理界面,通常是 http://localhost。在界面上,点击 Add Proxy Host 按钮,填写如下信息:

  • Proxy Hostname: localhost
  • Proxy Port: 80
  • Proxy Protocol: http
  • Proxy Type: websocket
  • Proxy Destination: localhost:8000

点击 Save 按钮保存配置。

现在,我们可以使用任意支持Websockets的客户端连接到 ws://localhost/websocket

config.json 파일에서 여러 프록시 서버를 구성할 수 있습니다. 이 예에서는 수신된 모든 Websocket 요청을 지정된 대상 서버로 프록시하도록 websocket이라는 프록시 서버를 구성합니다.

다음은 구성 예입니다.

rrreee

위 구성에서는 프록시 서버 이름, SSL 사용 여부, 대상 서버의 호스트 및 포트, URL 경로 및 프록시 유형을 지정합니다. .

    Start NPM🎜🎜🎜구성이 완료되면 NPM을 시작할 수 있습니다. 터미널에 NPM 설치 디렉터리를 입력한 후 다음 명령을 실행합니다. 🎜rrreee🎜 이때 NPM은 기본 포트 80에서 수신 대기하고 요청 프록시를 시작합니다. 🎜
      🎜Websockets 프록시 테스트🎜🎜🎜이제 NPM 구성 및 시작을 완료했으므로 Websockets 프록시가 제대로 작동하는지 테스트해 보겠습니다. 🎜🎜먼저 Node.js를 사용하여 구축할 수 있는 간단한 웹소켓 서버를 준비하세요. 다음은 샘플 코드입니다. 🎜rrreee🎜위 코드를 터미널에서 실행하여 웹소켓 서버를 시작하세요. 🎜🎜다음으로, 브라우저(보통 http://localhost)에서 NPM의 관리 인터페이스에 액세스하세요. 인터페이스에서 프록시 호스트 추가 버튼을 클릭하고 다음 정보를 입력합니다. 🎜
    🎜프록시 호스트 이름: localhost🎜🎜프록시 포트: 80🎜🎜프록시 프로토콜: http🎜🎜프록시 유형: websocket🎜🎜 프록시 대상: localhost:8000🎜
🎜 구성을 저장하려면 저장 버튼을 클릭하세요. 🎜🎜이제 웹소켓을 지원하는 모든 클라이언트를 사용하여 ws://localhost/websocket에 연결하고 메시지를 보내고 서버로부터 응답을 받을 수 있습니다. 🎜🎜NPM 프록시 서버를 통해 웹소켓의 프록시 기능을 성공적으로 구현했습니다. 🎜🎜요약🎜🎜이 글에서는 Nginx Proxy Manager를 사용하여 웹소켓의 프록시 기능을 구현하는 방법을 소개합니다. NPM을 구성하고 특정 코드 예제를 사용하여 웹소켓 요청을 프록시할 수 있는 프록시 서버를 성공적으로 구축했습니다. 이 기사가 NPM과 웹소켓 프록시를 이해하고 사용하는 데 도움이 되기를 바랍니다. 🎜

위 내용은 Nginx 프록시 관리자를 사용하여 웹소켓 프록시를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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