Обратный прокси-сервер перед несколькими приложениями, прослушивающими локальный хостApache

Ответить
Anonymous
 Обратный прокси-сервер перед несколькими приложениями, прослушивающими локальный хост

Сообщение Anonymous »

Сценарий
У меня есть два приложения с потоковой подсветкой, прослушивающие локальный хост.
Apache настроен как обратный прокси-сервер для обработки https-соединений.
Конфигурация
Вот конфигурация, которую я использую:

Код: Выделить всё

/etc/apache2/sites-enabled/test-01.dharmatech.dev-streamlit-apps.conf:


ServerAdmin webmaster@localhost
ServerName test-01.dharmatech.dev
# ServerAlias www.test-01.dharmatech.dev
DocumentRoot /var/www/test-01.dharmatech.dev
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

RewriteEngine On

# ----------------------------------------------------------------------
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /hello-1/(.*)         ws://127.0.0.1:8511/hello-1/$1 [P,L]

RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /hello-1/(.*)           http://127.0.0.1:8511/hello-1/$1 [P,L]

ProxyPass        /hello-1 http://127.0.0.1:8511/hello-1
ProxyPassReverse /hello-1 http://127.0.0.1:8511/hello-1

ProxyPass        /hello-1 ws://127.0.0.1:8511/hello-1
ProxyPassReverse /hello-1 ws://127.0.0.1:8511/hello-1
# ----------------------------------------------------------------------
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /hello-2/(.*)         ws://127.0.0.1:8512/hello-2/$1 [P,L]

RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /hello-2/(.*)           http://127.0.0.1:8512/hello-2/$1 [P,L]

ProxyPass        /hello-2 http://127.0.0.1:8512/hello-2
ProxyPassReverse /hello-2 http://127.0.0.1:8512/hello-2

ProxyPass        /hello-2 ws://127.0.0.1:8512/hello-2
ProxyPassReverse /hello-2 ws://127.0.0.1:8512/hello-2
# ----------------------------------------------------------------------

Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile    /etc/letsencrypt/live/test-01.dharmatech.dev/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/test-01.dharmatech.dev/privkey.pem


Итак, имеем следующее:

Код: Выделить всё

https://test-01.dharmatech.dev/hello-1   ->   http://127.0.0.1:8511/hello-1
https://test-01.dharmatech.dev/hello-2   ->   http://127.0.0.1:8512/hello-2
Вопрос
Фактические строки, используемые для настройки обратного прокси-сервера для приложения, следующие:

Код: Выделить всё

RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /hello-1/(.*)         ws://127.0.0.1:8511/hello-1/$1 [P,L]

RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /hello-1/(.*)           http://127.0.0.1:8511/hello-1/$1 [P,L]

ProxyPass        /hello-1 http://127.0.0.1:8511/hello-1
ProxyPassReverse /hello-1 http://127.0.0.1:8511/hello-1

ProxyPass        /hello-1 ws://127.0.0.1:8511/hello-1
ProxyPassReverse /hello-1 ws://127.0.0.1:8511/hello-1
Я собрал их вместе, просмотрев различные примеры, найденные в Интернете.
Как видите, приложение использует веб-сокеты.
Пока что все работает нормально.
Это рекомендуемый подход для настройки обратного прокси-сервера для приложения, использующего веб-сокеты?
/>Любые предложения и рекомендации приветствуются. Если есть лучший или более идиоматический способ выразить это, мне было бы интересно об этом услышать.
Примечание: я открыт для использования других инструментов. Поэтому, если какой-либо другой инструмент, например nginx, haproxy и т. д., больше подходит для такой настройки, не стесняйтесь предложить и его.

Подробнее здесь: https://stackoverflow.com/questions/792 ... -localhost
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Apache»