У меня есть приложение Java Spring, работающее на сервере Tomcat. Я использую сервер Apache для разгрузки SSL.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
Это работает, и я могу сделать запрос HTTPS на сервер Apache на порту 8043 и запрос направляется на сервер Tomcat в качестве запроса HTTP. Поправьте меня, если мое понимание ошибочно, но я верю, что это работает.
У моего приложения есть конечная точка Websocket. (Я использую Spring/Stomp/ActiveMQ). В настоящее время URL-адрес конечной точки: i.e: ws: // appname: 61614. Я могу подключиться непосредственно к конечной точке websocket, но это небезопасно, и я хотел бы изменить это на wss: // appname: 61614 и запросить запросы через сервер apache: wss: // myapp: 61614, который будет обрабатывать SSL и затем переместите их в ws: // app: 61614.
Можно ли достичь этого так же, как это можно сделать с помощью https и http? Так что я мог иметь что-то вроде этого:
//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 я сделать порт 61615 сервера апача будет перенаправлен на веб-службу: // Приложение: 61614 моего TOMCAT приложения? И это сработает? Может ли Apache обрабатывать прокси-серверы таким образом?