ホームページ  >  記事  >  運用・保守  >  リアルタイム通信を実現するための Nginx リバース プロキシ Websocket 構成チュートリアル

リアルタイム通信を実現するための Nginx リバース プロキシ Websocket 構成チュートリアル

PHPz
PHPzオリジナル
2023-07-04 15:28:374013ブラウズ

リアルタイム通信を実現するための 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 が Websocket 接続をサポートするように Upgrade ヘッダーと Connection ヘッダーを設定します。

「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 のリバース プロキシ構成を通じて、Websocket リクエストをバックエンド サーバーに簡単に転送して、リアルタイム通信を実現できます。これにより、優れた柔軟性と拡張性を備えたリアルタイム アプリケーションの構築が容易になります。

本番環境では、Nginx とバックエンド サーバーのセキュリティと信頼性を確保し、必要に応じて調整および監視することを忘れないでください。この記事が Nginx リバース プロキシ Websocket の理解と使用に役立つことを願っています。

以上がリアルタイム通信を実現するための Nginx リバース プロキシ Websocket 構成チュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。