0

現在、mod_proxy_wstunnel を含む apache2.4.18 を正常にインストールし、別のマシンに tomcat7 をインストールしました。そして、Tomcat7 に大気サンプル アプリをデプロイしました。次に、http://tomcatserver.com:8080/ademo/index.htmlにアクセスします。

以下のブラウザをキャプチャしました。 ここに画像の説明を入力

この index.html はhttps://github.com/Atmosphere/atmosphere-samples/blob/master/samples/chat/src/main/webapp/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
4

1 に答える 1

0

私自身の質問に答えたいと思います。

私が使用した httpd は、websocket をサポートするソース コード 2.4.18 からコンパイルされました。そして、コンパイルプロセスは例外なく正常であることがわかりました。私が使用している redhat は、Red Hat Enterprise Linux Server リリース 5.9 (Tikanga) です。

私が推測する理由は、「プロトコル ハンドラが有効ではありませんでした」というエラー メッセージが原因です。yumをインストールしてredhat 7.1に切り替えようとしたよりも。httpd 2.4.5 を自動的にインストールする 'yum install httpd' を実行しました。そして、httpd と tomcat からの websocket 接続は問題ないことがわかりました。

しかし、現在、redhat 5.x の問題を解決したいと考えています。将来的には、redhat の下位バージョンを使用する予定だからです。通常、コンパイル プロセスは OK ですので、バイナリも OK でしょうか?

于 2016-01-11T02:16:13.003 に答える