インスタント通信を実現するための Nginx リバース プロキシ WebSocket 構成

WBOY
リリース: 2023-07-05 08:36:09
オリジナル
2201 人が閲覧しました

即時通信を実現するNginxリバースプロキシWebSocketの構成

WebSocketはTCPプロトコルをベースとした通信プロトコルで、ブラウザとサーバー間に長期双方向接続を確立し、次のような機能を実現します。リアルタイム通信です。高性能 Web サーバーとして、Nginx はリバース プロキシを通じて WebSocket もサポートし、より優れた負荷分散と高い同時処理を実現します。

まず、Nginx でリバース プロキシを構成するには、nginx.conf ファイルに location 構成を追加する必要があります。 WebSocket サーバーがローカル ポート 8000 で実行されていると仮定し、それを Nginx サーバーの 3000 ポートにリバース プロキシします。具体的な構成は次のとおりです:

server {
    listen 3000;
    server_name your.server.name;
    
    location / {
        proxy_pass http://localhost:8000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }
}
ログイン後にコピー

上記の構成では、 proxy_pass ディレクティブは、リバース プロキシとなる WebSocket サーバーのアドレスとポートを指定します。 proxy_http_versionリバース プロキシで使用される HTTP バージョンを指定します。ここでは 1.1 に設定されています。 proxy_set_header Upgrade および proxy_set_header Connection 命令は、セキュリティを確保するために、WebSocket リクエストを転送するときに Upgrade および Connection リクエスト ヘッダーを変更しないように Nginx に指示します。 WebSocket 接続の通常どおり作成します。

WebSocket サーバーが HTTPS プロトコルで実行されている場合は、サーバーに次のように指示するために、proxy_set_header X-Forwarded-Proto $scheme; ディレクティブを設定に追加する必要があることに注意してください。 HTTPS プロトコルを使用します。

上記の設定を完了したら、Nginx 設定ファイルをリロードして有効にします: sudo nginx -s reload

次に、WebSocket クライアントを使用して、リバース プロキシ構成が成功したかどうかをテストします。 JavaScript を例にとると、コードは次のとおりです。

var socket = new WebSocket('ws://your.server.name/');
socket.onopen = function() {
    console.log('WebSocket连接已建立');
};
socket.onmessage = function(event) {
    console.log('收到消息:' + event.data);
};
socket.onclose = function() {
    console.log('WebSocket连接已关闭');
};
ログイン後にコピー

上記の例では、WebSocket オブジェクトを作成し、接続するアドレスを Nginx サーバーのアドレスとして指定しました。 onopenonmessageonclose コールバック関数では、WebSocket 接続の成功、メッセージ受信、接続終了のイベントを処理できます。

上記の構成とコード例により、Nginx 上にリバース プロキシ WebSocket を実装し、インスタント メッセージング機能を実現できます。 Nginx の高いパフォーマンスと負荷分散メカニズムを通じて、WebSocket アプリケーションに安定した信頼性の高いサービスを提供し、多数の同時接続を処理できます。同時に、Nginx には成熟した運用、保守、監視ツールがあるため、WebSocket アプリケーションのパフォーマンスの最適化とトラブルシューティングを簡単に実行できます。

要約すると、Nginx は優れた Web サーバーであり、リバース プロキシ構成により、WebSocket を簡単にサポートし、高パフォーマンスのインスタント メッセージング サービスを提供できます。インスタント メッセージング機能を実装する必要がある Web アプリケーションにとって、Nginx リバース プロキシ構成は検討して使用する価値のあるソリューションです。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!