Конфигурация Websocket для нескольких приложений на основе обратного прокси - PullRequest
0 голосов
/ 11 апреля 2020

Структура моего сервера выглядит следующим образом:

/
|--/api1
|--/staging.api1
|--/api2
|--/staging.api2

, где каждое приложение доступно через следующую конфигурацию на основе обратного прокси-сервера:

ProxyRequests Off
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

ProxyPreserveHost On
ProxyVia Full
<Proxy *>
        Order deny,allow
        Allow from all
</Proxy>

SSLProxyEngine on
RewriteEngine On

# Websocket 
RewriteCond %{HTTP:Connection} Upgrade [NC]
RewriteCond %{HTTP:Upgrade} websocket [NC]  
#RewriteRule /staging.api1/(.*)           ws://localhost:3001/$1 [P,L]
RewriteRule /api1/(.*)           ws://localhost:3002/$1 [P,L]


### REST APIs
ProxyPass /staging.api1 http://localhost:3001
ProxyPassReverse /staging.api1 http://localhost:3001

ProxyPass /api1 http://localhost:3002
ProxyPassReverse /api1 http://localhost:3002

Eveyrthing работал нормально, когда только Продукция (api1) и соответствующая ей конфигурация веб-сокета. Однако после реализации новой конфигурации для промежуточной среды он испортил весь файл, и маршруты портов перестали быть доступными.

Если удаляется неправильная конфигурация веб-сокета (staging.api1), все остальное работает нормально.

Кто-нибудь знает, что могло пойти не так?

Заранее спасибо

...