nginxのWebsocket接続をどのように設定しますか?
NginxをWebSocket接続をサポートするように構成するには、以下の手順を実行する必要があります。
- Nginxの設定ファイルを開いてください(通常、/etc/nginx/nginx.confにあります)。
- http部分に以下の設定を追加してください。
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://your_websocket_server;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
- map指令では、Upgradeヘッダーにより、変数$connection_upgradeの値が定義されます。Upgradeフィールドが存在し、空でない場合は、値を”upgrade”に設定します。それ以外の場合は、”close”に設定します。
- サーバーブロックでは、80ポートをリッスンし、サーバー名を指定しています。locationブロックはすべてのリクエストを処理し、WebSocketサーバーにプロキシします。proxy_http_versionディレクティブはHTTPバージョンを1.1に設定し、proxy_set_headerディレクティブはUpgradeおよびConnectionリクエストヘッダーフィールドを設定し、WebSocket接続をサポートします。
- あなたのWebSocketサーバー
- 設定ファイルを保存し、閉じます。
- nginxの構文をチェックします。
- nginxの再起動を行うには、systemctl restart nginxと入力してください。
上記の手順が完了すると、NginxはWebSocket接続を正しくプロキシします。WebSocketサーバーが正常に動作しており、Nginxがアクセスできることを確認してください。