nginxはプロキシウェブソケットをサポートしていますが、ウェブスロットを使用するURIに適用される別のロケーションブロックを使用せずにこれを行う方法に関する情報は見つかりませんでした。nginxリバースプロキシウェブソケット
私は、このアプローチのいくつかのバリエーションを推薦一部の人々を見てきました:
location/{
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://host:port;
}
それが正しいプロキシ標準のHTTPへの道だけでなく、WebSocketをだろうか?私は、ブラウザが送信したものでない限り、UpgradeヘッダーまたはConnectionが「アップグレード」に設定されることを望んでいませんが、これらのproxy_set_header行は、Webソケットが動作するために必要です。なぜnginxは元のUpgrade/Connectionヘッダを転送しないのですか?
私はこれで実験し、nginxのプロキシUpgradeヘッダをせず、「閉じる」2つのproxy_set_headerラインなしで実行している場合は、「アップグレード」からのConnectionヘッダを変更することを発見しました。それらを使用すると、WebSocket以外のリクエストに対してもConnectionは「アップグレード」されていますが、これも悪いことです。
感謝:)