私が頼りにしているwebsocketライブラリ(PHP-Websockets)はまだ安全なソケット(wss
)をサポートしていません。私のウェブサイトはhttps
以上で提供されているので、安全でないws
接続は使用できません。Apache mod_proxy:セキュリティで保護されていないwebsocketを転送します
私はApache's mod_proxy
を使用して、ブラウザからのセキュリティ保護された要求をクライアントに転送しようとしています。接続しようとしたら
Javascriptを
var ws = new WebSocket('wss://example.com/_ws_/');
のApacheのVirtualHost
ProxyPass "/_ws_/" "ws://127.0.0.1:8080/"
ProxyPassReverse "/_ws_/" "ws://127.0.0.1:8080/"
# I've also tried "/_ws_/" "ws://example.com:8080/" Same error below
、ブラウザが500 Server Error
を受けます。ログには次の情報が表示されます。
URL/_ws_ /に有効なプロトコルハンドラはありません。 mod_proxyのDSOバージョンを使用している場合は、プロキシサブモジュールがLoadModuleを使用してコンフィグレーションに含まれていることを確認してください。
私はプロキシルールを削除する場合は、https
にユーザーをリダイレクトを停止することを確認し、ブラウザから安全でないソケットに接続してみました:new WebSocket('ws://example.com/')
、物事はうまく動作します。
マイロードされたApacheモジュールはあなたにもmod_proxy_wstunnel
モジュールをロードする必要があり、プロキシWebSocketをリバースするにはmod_ssl.c
、mod_proxy.c
とApache 2.4
私はbitnami tomcat stackと同様の問題があります。 Unfortunatly私はmodプロキシを設定するのに十分なスキルがなく、私はapache2 Webサーバーをまったく削除します。 https://community.bitnami.com/t/tomcat-8-websockets/39477/3 – degr
@degrリンクありがとう – BeetleJuice
'mod_proxy_wstunnel'モジュールはどうなっていますか? –