#apache #ssl #proxy #websocket #activemq
#apache #ssl #прокси #веб-сокет #activemq
Вопрос:
У меня есть приложение Java Spring, запущенное на сервере Tomcat. Я использую сервер Apache для разгрузки SSL.
<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-адрес конечной точки: 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 сервера apache, будут перенаправлены на ws:// app: 61614 моего приложения tomcat? И это будет работать? Может ли Apache обрабатывать прокси-сервер websockets таким образом?
Ответ №1:
ProxyPassMatch требует регулярного выражения и какой-то обработки в цели. ProxyPassMatch / ws:// app:61614 выглядит для меня очень некорректно. Также сопоставьте конечные косые черты.
Попробуйте и дайте нам знать:
ProxyPass / ws://app:61614/
ProxyPassReverse / ws://app:61614/