問題
Apache サーバーの背後にある laravel websockets ライブラリを使用してライブ環境をセットアップしようとしています。Websocket サーバーはポートで実行されています6001
(外部から到達できません)。Apache VHost は次のように構成されていますws.example.com
Apache にwss://
リクエストを正しくプロキシさせることができません。への要求はwss://ws.example.com/request/path?protocol=7&client=js&version=5.1.1&flash=false
失敗します。( Error during WebSocket handshake: Invalid status line
)
仮想ホストの設定に問題があると思います。何か不足していますか?アドバイスをいただければ幸いです。
仮想ホスト構成
<VirtualHost *:443>
ServerName ws.example.com
ServerAlias www.ws.example.com.com
DocumentRoot /srv/vhost/example.com/domains/ws.example.com/public_html
ErrorLog /var/log/virtualmin/ws.example.com_error_log
CustomLog /var/log/virtualmin/ws.example.com_access_log combined
ScriptAlias /cgi-bin/ /srv/vhost/example.com/domains/ws.example.com/cgi-bin/
DirectoryIndex index.php index.html
RewriteEngine on
ProxyRequests off
ProxyVia on
RewriteCond %{HTTP:Connection} Upgrade [NC]
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule /(.*) ws://localhost:6001/$1 [P,L]
ProxyPass /request/path http://localhost:6001/request/path
ProxyPassReverse /request/path http://localhost:6001/request/path
SSLCertificateFile /etc/letsencrypt/path/ws.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/path/ws.example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>