Nginx プロキシ サーバーを使用して WebSocket プロトコルのサポートを実装するにはどうすればよいですか?
WebSocket は、TCP をベースとした全二重通信プロトコルで、サーバーとクライアントが長期間接続を維持できる通信チャネルを確立することで、リアルタイムの双方向通信を可能にします。リアルタイム通信、インスタントチャット、リアルタイムデータプッシュなどのシナリオに適しています。 WebSocket を使用する場合、多くの場合、WebSocket の要求と応答を転送するようにプロキシ サーバーを構成する必要があります。この記事では、Nginx プロキシ サーバーを使用して WebSocket プロトコルのサポートを実装する方法を紹介します。
ステップ 1: Nginx をインストールする
まず、Nginx がプロキシ サーバーにインストールされていることを確認する必要があります。インストールされていない場合は、オペレーティング システムに応じて適切なインストール方法を選択してください。
ステップ 2: Nginx 構成ファイルを変更する
次に、Nginx 構成ファイルを変更する必要があります。 Nginx 構成ファイルを開き、次のコードを http
ブロックに追加します。
map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream backend { server 127.0.0.1:8080; }
上記のコードでは、map
ディレクティブを使用して Upgrade を実行します。リクエストヘッダー
フィールドの値は、$connection_upgrade
変数の値にマップされます。 upstream
ディレクティブはバックエンド サーバーのアドレスを定義するために使用されます。ここではローカル アドレス 127.0.0.1:8080
が使用されます。実際の状況に応じて変更できます。
次のコードを server
ブロックに追加します。
location /websocket { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; }
上記のコードでは、location
ディレクティブを使用して、 WebSocket リクエスト。 proxy_pass
ディレクティブは、リクエストをバックエンド サーバーに転送するために使用されます。 proxy_http_version
ディレクティブは、プロキシ プロトコルのバージョンを指定するために使用されます。 proxy_set_header
ディレクティブは、リクエスト ヘッダーを設定し、Upgrade
フィールドと Connection
フィールドをそのままバックエンド サーバーに転送するために使用されます。
ステップ 3: Nginx サービスを再起動する
構成ファイルの変更が完了したら、ファイルを保存して閉じます。次に、構成を有効にするために Nginx サービスを再起動します。コマンド ラインに次のコマンドを入力します。
sudo service nginx restart
ステップ 4: WebSocket 接続をテストする
この時点で、Nginx の構成は完了です。次に、WebSocket クライアント ツールを使用するか、単純な Web アプリケーションを作成して WebSocket 接続をテストします。簡単なサンプル コードを次に示します。
var ws = new WebSocket("ws://your_domain/websocket"); ws.onopen = function() { console.log("Connected to WebSocket"); }; ws.onmessage = function(event) { console.log("Received message: " + event.data); }; ws.onclose = function() { console.log("Disconnected from WebSocket"); };
上記のコードを HTML ファイルとして保存し、ブラウザでそのファイルを開きます。ブラウザの開発者ツールに「WebSocket に接続しました」という出力が表示された場合は、WebSocket 接続が成功したことを意味します。
概要: 上記の手順により、Nginx プロキシ サーバーを使用して WebSocket プロトコルのサポートを実装することができました。このようにして、Nginx の強力なパフォーマンスと柔軟な構成を利用して、より効率的で安定した WebSocket 通信を実現できます。ただし、Nginx 自体は WebSocket サーバーではなく、処理のために WebSocket 接続をバックエンド サーバーに転送するためのプロキシ サーバーとしてのみ使用されることに注意してください。完全な WebSocket サーバーを展開する必要がある場合は、他の専用 WebSocket サーバー ソフトウェアの使用を検討できます。
以上がNginx プロキシ サーバーを使用して WebSocket プロトコルのサポートを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。