Я искал в Google различные комбинации ключевых слов, но не могу найти подходящего описания того, что делать, чтобы это работало. В настоящее время у меня есть веб-сайт, на котором запущен Apache 2, где все, кроме портов 80 и 443, заблокировано. Я настроил Tomcat для маршрутизации через: 80 и: 443, используя:
<Location /tomcat/>
ProxyPass ajp://localhost:8009/tomcat/
Order allow,deny
Allow from all
</Location>
Кроме того, существующие приложения Node.js http [s] также успешно маршрутизируются с помощью следующего кода:
<Location /app_8201/>
ProxyPass http://localhost:8201/
</Location>
Я использую Apache / 2.2.15, Tomcat 6 и Node.js v0.10.26 на CentOS под Azure. Поддержка Websocket представлена в виде запущенных примеров приложений, ссылающихся на localhost:9999
работает нормально. Похоже, что должен быть ProxyPass ws://localhost:9999
, но если я следуйте инструкциям здесь:
<Location /ws/>
ProxyPass http://localhost:9999
ProxyPassReverse http://localhost:9999
</Location>
Я получаю сообщение об ошибке HTTP 500 при попытке доступа к каталогу ws
либо http
или ws
.
я использую mod_proxy_ajp
вместо того mod_jk
как я понимаю ajp
лучше".
Поддержка WebSocket впервые появилась в Apache 2.4.5 через модуль mod_proxy_wstunnel, в предыдущих версиях, таких как Apache 2.2, поддержки нет.
Протокол должен быть явно выбран через ws: // или wss: //, модули протокола AJP и HTTP для mod_proxy ничего не знают о WebSockets:
<Location /ws>
ProxyPass ws://localhost:9999
ProxyPassReverse ws://localhost:9999
</Location>