Я запускаю веб-сайт на Apache. У меня есть два приложения, которые используют веб-сокеты, одно основано на Node, использующем порт 3000, а другое основано на Phoenix, использующем порт 4000. Оба приложения также используют обратный прокси-сервер. Например, у меня есть что-то вроде этого:
<Location /node/>
ProxyPass http://127.0.0.1:3000/
ProxyPassReverse http://127.0.0.1:3000/
</Location>
<Location /phoenix/>
ProxyPass http://127.0.0.1:4000/
ProxyPassReverse http://127.0.0.1:4000/
</Location>
Однако у меня возникают проблемы с работой веб-сокетов. У меня есть что-то вроде этого для приложения Node (вне контекста <Location>):
RewriteCond %{QUERY_STRING} transport=опрос [NC]
Правило перезаписи /(.*) http://127.0.0.1:3000/$1 [P]
RewriteCond %{HTTP:Upgrade} веб-сокет [NC]
Правило перезаписи /(.*) ws://127.0.0.1:3000/$1 [P]
Я разработал свое приложение Node несколько лет назад, и все работало отлично. Однако в настоящее время я разрабатываю приложение Phoenix и не знаю, как управлять сокетами. В конце концов, я планирую полностью отказаться от приложения Node, но мне нужно, чтобы оно работало для наших пользователей, пока не будет разработано новое приложение. Тем не менее, мне все еще нужно, чтобы новое приложение одновременно работало на веб-сайте, чтобы я мог его разработать. Было бы неплохо, чтобы сокеты работали в обоих приложениях одновременно.