私は、websocket を使用する Perl Mojolicious プロジェクトに取り組んできました。Apache を実行している共有サーバーで起動し、proxyPass と proxyPassReverse を使用して、Hypnotoad で実行する Mojolicious コードの URL をきれいにしたいと考えています。
以下のように設定しています。
アパッチの URL:
mydomain.com
ヒプノトードのURL:
mydomain.com:8080
次のApacheエントリを使用して、Hypnotoadサーバーをリバースプロキシできます
project.mydomain.com
apache.conf エントリ
<VirtualHost *:80>
ServerName project.mydomain.com
DocumentRoot /var/www/project
<Directory /var/www/project/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://mydomain.com:8080/ keepalive=On
ProxyPassReverse / http://mydomain.com:8080/
RequestHeader set X-Forwarded-HTTPS "0"
</VirtualHost>
ただし、次を使用すると、websocket リクエストで 404 エラーが発生します。
ws://project.mydomain.com/get-data
私が使用すると302エラー:
ws://mydomain.com:8080/get-data
Websocketが認証をチェックしなかったので、これは問題にはならないと思いますが、Mojoliciousルートを使用して、Websocket経由で投稿できることを確認します。
私が見る限り、Apache はリバース プロキシ WebSocket をサポートしていません。apache/httpd conf ファイル内。
本番環境で安定しているApacheを使用して、これに対する使用可能なソリューションを見つけた人はいますか?