現在、mod_proxy_wstunnel を含む apache2.4.18 を正常にインストールし、別のマシンに tomcat7 をインストールしました。そして、Tomcat7 に大気サンプル アプリをデプロイしました。次に、http://tomcatserver.com:8080/ademo/index.htmlにアクセスします。
次に、以下のようにApacheサーバー内でhttpd.confを設定しようとしました。VirtualHost 関連の構成は使用しませんでした。この httpd.conf ファイルの末尾に以下の 2 行を追加するだけです。
ProxyPass /ademo/ http://tomcatserver.com:8080/ademo/
ProxyPassReverse /ademo/ http://tomcatserver.com:8080/ademo/
次に httpd を再起動し、以下の URL にアクセスします。 http://apachehttpdserver.com/ademo/index.html
以下のブラウザーのスナップショットをキャプチャしました。Websocket がサポートされていないことがわかります。
それで、このhttpd.confを変更して websocket をサポートするにはどうすればよいのでしょうか? のコメントを外しましたLoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
実際には複数のバックエンド サーバーをセットアップする予定なので、http://blog.arungupta.me/load-balance-websockets-apache-httpd-techtip48/を参照した以下の構成を使用します。しかし、それでもエラーが発生します[Fri Jan 08 02:55:50.840362 2016] [proxy:warn] [pid 18446:tid 46971298007360] [client 10.248.66.148:52033] AH01144: No protocol handler was valid for the URL /ademo/ socket.html. mod_proxy の DSO バージョンを使用している場合は、LoadModule を使用してプロキシ サブモジュールが構成に含まれていることを確認してください。 私が確認していることの 1 つは、必要なモジュールを httpd.conf に設定したことです。
<Proxy balancer://mycluster>
# Define back-end servers:
# Server 1
BalancerMember ws://10.214.49.65:8080
# Server 2
BalancerMember ws://10.214.49.83:8080/
</Proxy>
ProxyPass /ademo balancer://mycluster/ademo
ProxyPassReverse /ademo balancer://mycluster/ademo