私はJava SpringアプリケーションをTomcatサーバー上で実行しています。 SSLオフロード用にApacheサーバーを使用しています。WebSocket用Apache SSLオフロード/リバースプロキシ(Spring App)
<VirtualHost *:8043>
ServerName myserver.com
SSLEngine on
SSLCertificateFile "pathtokeystore.crt"
SSLCertificateKeyFile "pathtoserver.key"
ProxyRequests On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPassMatch ^/(MyApp/.*)$ http://App:8080/$1
ProxyPassReverse /MyApp http://App:8080/Home
//not including other stuff below
これは動作しますが、私は、ポート8043上のApacheサーバーへのHTTPS要求を行うことができ、要求はHTTP要求としてTomcatサーバーに転送されます。私の理解が間違っていれば私を訂正しなさい、しかし私はそれがいかに働くか信じる。
私のアプリはWebsocketエンドポイントを持っています。 (私はSpring/Stomp/ActiveMQを使用します)。現在、エンドポイントのURLは:ws:// appname:61614です。 私はwebsocketエンドポイントに直接接続できますが、これは安全ではないので、これをwss:// appname:61614に変更して、apacheサーバーからwss:// myapp:61614へのリクエストを行います。それらをws:// app:61614に転送します。
これはhttpsとhttpと同じ方法で実行できますか?私はWSに転送されるのApacheサーバのポート61615に作る
//Loadmodule mod_proxy_wstunnel at the start of httpd conf file
<VirtualHost *:61615>
ServerName myserver.com
SSLEngine on
SSLCertificateFile "pathtokeystore.crt"
SSLCertificateKeyFile "pathtoserver.key"
ProxyPassMatch /ws://app:61614
ProxyPassReverse /ws://app:61614
私はすべてのWSS要求を考えるに修正アム://アプリ:私のTomcatのアプリの61614だから私はこのような何かを持っているだろうか?そして、これは動作しますか? ApacheがこのようにWebソケットのプロキシを処理することはできますか?