Я работаю над проектом Perl Mojolicious, в котором используются веб-сокеты. Я хочу запустить его на общем сервере под управлением apache и использовать proxyPass и proxyPassReverse, чтобы сделать URL-адрес более красивым для моего кода Mojolicious, работающего с Hypnotoad.
У меня настроено следующим образом.
URL-адрес апача:
mydomain.com
Адрес гипножабы:
mydomain.com:8080
С помощью следующей записи apache я могу изменить прокси-сервер Hypnotoad на
project.mydomain.com
запись в apache.conf
<VirtualHost *:80>
ServerName project.mydomain.com
DocumentRoot /var/www/project
<Directory /var/www/project/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://mydomain.com:8080/ keepalive=On
ProxyPassReverse / http://mydomain.com:8080/
RequestHeader set X-Forwarded-HTTPS "0"
</VirtualHost>
Однако мои запросы веб-сокетов дают ошибку 404, когда я использую:
ws://project.mydomain.com/get-data
и ошибка 302, когда я использую:
ws://mydomain.com:8080/get-data
Я думаю, это не было бы проблемой, если веб-сокет не проверял аутентификацию, но они используют маршруты Mojolicious для проверки того, что вы можете публиковать сообщения через веб-сокет.
Из того, что я вижу, Apache не поддерживает обратное проксирование веб-сокетов. В файлах конфигурации apache/httpd.
Кто-нибудь нашел полезное решение для этого с использованием Apache, стабильного для производственной среды?