NGINX WebソケットとSSLの設定

NGINX WebソケットとSSLの設定

Webソケット接続(WSS)を設定しようとしています。私のドメインはSSL(certbot)を使用し、Nginxで駆動されます。ファイルを構成する方法がわからない/etc/nginx/sites-available/domain.com

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
...
}

構成ブロックに以下を追加しました。

location /websocket {
    proxy_pass         https://domain.com;
    proxy_http_version 1.1;
    proxy_set_header   Upgrade $http_upgrade;
    proxy_set_header   Connection "upgrade";
    proxy_set_header   Host $host;
}

以下を介して接続する場合wss://domain.com/:

WebSocket connection to 'wss://domain.com/' failed: 
Error during WebSocket handshake: Unexpected response code: 200

ほとんどの例ではnodejsフレームワークを使用してウェブサイトを提供していますが、私はPHPを使用しています。

ベストアンサー1

/websocketWebソケットエンドポイントは、提供されたnginx構成でサーバー内でホストされるように構成されていますが、ルートURLに接続しようとしていますwss://domain.com

アップグレード前に、Websocket接続は通常のHTTP(この場合はTLSラッパーを使用)セッションでしたので、サービスへのアクセスに使用されるURLにすべての関連パス指定子が含まれていることを確認する必要がありますwss://domain.com/websocket

おすすめ記事