現在の位置: ホーム> 最新記事一覧> nginx構成の詳細な説明WebSocketプロキシ:リアルタイム通信サポート

nginx構成の詳細な説明WebSocketプロキシ:リアルタイム通信サポート

M66 2025-07-09

WebSocketプロトコルとは何ですか

WebSocketは、クライアントとサーバー間の永続的な接続がリアルタイムデータの双方向伝送を実現できるTCPベースのフルダプレックス通信プロトコルです。従来のHTTPポーリングと比較して、WebSocketは、インスタント通信やリアルタイムプッシュなどのシナリオの効率が高く、レイテンシーが低くなっています。

Nginxを使用してWebSocxをプロキシに使用します

実際の展開では、NGINXをフロントエンドプロキシサーバーとして使用して、ロードバランス、セキュアアクセス制御、パス転送、その他の機能を処理する必要があることがよくあります。 WebSocketプロトコルをサポートするために、接続を安定して継続的にバックエンドサービスに配信できるように、NGINXの追加構成が必要です。

nginxをインストールします

まず、Nginxがサーバーにインストールされていることを確認してください。パッケージ管理ツールを介してインストールできます。

sudo apt install nginx#debian/ubuntuシステムsudo yumインストールnginx#centosシステム

インストールが完了した後、 NGINX -Vを使用してバージョンを表示して、インストールが成功したことを確認できます。

websocketをサポートするようにnginxを構成します

次に、nginx構成ファイル、通常は/etc/nginx/nginx.confの構成ファイルまたはサイト対応を変更する必要があります。

マップとアップストリームを構成します

マップ$ http_upgrade $ connection_upgrade {
    デフォルトのアップグレード。
    '' 近いい;
}

上流のバックエンド{
    サーバー127.0.0.1:8080;
}

この構成の目的は、WebSocket接続のアップグレードヘッダーのマッピングを設定し、バックエンドアプリケーションのアドレスを指定することです。

サーバーブロックで場所を構成します

場所 /websocket {
    proxy_pass http:// backend;
    proxy_http_version 1.1;
    proxy_set_headerアップグレード$ http_upgrade;
    proxy_set_header connection $ connection_upgrade;
}

この構成は、バックエンドへの/websocketパスにアクセスするリクエストを転送し、必要なヘッダー情報を運び、WebSocketハンドシェイクプロセスをスムーズに完了できるようにします。

nginxを再起動して、構成を有効にします

構成が完了したら、次のコマンドを実行してnginxサービスを再起動します。

Sudo Service Nginx Restart

構成が正しい場合、NginxはWebSocket接続の転送をサポートします。

WebSocket接続のテスト

ブラウザまたは他のクライアントツールを介してWebSocketが正常に接続されているかどうかをテストできます。これが基本的なJavaScriptの例です。

var ws = new WebSocket( "ws:// your_domain/websocket");

ws.onopen = function(){
    console.log( "websocketに接続");
};

ws.onmessage = function(event){
    console.log( "受信メッセージ:" + event.data);
};

ws.onclose = function(){
    console.log( "WebSocketから切断された");
};

上記のコードをHTMLに埋め込み、ブラウザで開いた後、コンソールが接続ステータスを表示できるかどうかを観察してください。

要約します

nginxプロキシWebSocxeを構成することにより、高性能で安定したリアルタイム通信サポートを実現できます。 Nginx自体はWebSocketロジックを処理せず、接続の転送とプロトコル関連のヘッダーの処理のみを担当しています。バックエンドには、WebSocketサービス機能が必要です。最新のWebアプリケーションを展開するとき、Nginxのプロキシ関数とバックエンドWebsocketサービスを組み合わせることは、リアルタイムのデータ相互作用に理想的な選択です。