Рейтинг:0

Обратный прокси-сервер цепочки на Apache2 не работает должным образом

флаг kr

Я попытался настроить следующую цепочку редиректов через обратный прокси, используя Apache2

№ ... -
# â Интернет â
# â âââââ â â ***
# â â â â
# â â клиент â â
# â ââ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– ***
# â â â
# â â â
# ‒ ‒ c.example.com ‒
# â â â
# â â â
№ ... ... ***
# â â â â â
# â â âââââââââ â â ââ ... â â â
# â â â Публичный хост â â â
# â â â pub.ip 123.123.123.123 â â â
# â â â ââââââââ ââ ââ â ...
# â â â â Публичный прокси â â â â
# â â â ââ¬ââââââââââ ââ ...
# â â â â int.ip 10.0.0.2 â â â â
# â â â â ¼ â â â â ... â
# â â â â â â
# â â â â â â
№ ... ***
# â â â â
# â â a.example.com â b.example.com â
# ‒ ‒ c.example.com ‒ d.example.com ‒
# â â â â
# â â â â
# â â â â
# â â â â
№ ... *** Д
# â â â â â â
# â â â â â â
# â â ââââââ âââ¼ ââ ââ ââ ... ââ â â
# â â â Private-Host-1â â Private-Host-2â â â
# â â â ââââââââââ ââ â â ... ✓
# â â â âInner Proxyâ â â âInner Proxyâ â â â
# â â â âââ¬ââââââââ¬ââ â ... ✓
# â â â â â â â â â â â â
# â â ââ–â––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– â⤠âââââ¼ââââââââ¼âââ ⤠â â
# â â â âc. а. â â âb. д. â â â
# â â â â â â â â â â â â
# â â â â â â â â â â â â
# â â â âââ¼âââ ââââ¼ ââ â â âââ¼âââ ââââ¼ââ â â â
# â â â â â â â â â â â â â â â â
# â â â â â â â â â â â â â â â â
# â â â âsrv1â âsrv2â â â âsrv3â âsrv4â â â â
# â â â â10.1â â10.1â â â â10.1â â10.1â â â ✓
# â â â â.0.2â â.0.3â â â â.0.4â â.0.5â â â
# â â â ââââââ ââââââ â â ***
# â â â контейнеры â â контейнеры â â â
# â â â â â â â â â ... ✓ ✓ ✓
# â â 10.0.0.3 10.0.0.4 â â
# â â â â
# â ââ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– ... - â
# 1 интрасеть 10.0.0.0/24
# â–––––––––––––––––––––––––––––––––––––––––– ... - ...

Мой файл конфигурации выглядит следующим образом (одинаково на общедоступных и частных хостах, меняйте IP по мере необходимости)

# c-example-com.conf на общедоступном хосте

<IfModule mod_ssl.c>
  <Виртуальный хост *:443>
    имя_сервера c.example.com
    <Прокси *>
      Отклонить заказ, разрешить
      Разрешить от всех
    </прокси>
    Включить /etc/letsencrypt/options-ssl-apache.conf
    SSLEngine включен
    SSLCertificateFile /etc/letsencrypt/live/c.example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/c.example.com/privkey.pem
    Прокси-запросы выключены
    ProxyPreserveHost включен
    SSLProxyEngine включен
    ProxyPass / https://10.0.0.3/ # на частном хосте, это будет 10.1.0.2 для всех остальных проходов
    ПроксиПассРеверс / https://10.0.0.3/
  </ виртуальный хост>
</ЕслиМодуль>

<IfModule mod_ssl.c>
  <Виртуальный хост *:80>
    имя_сервера c.example.com
    <Прокси *>
      Отклонить заказ, разрешить
      Разрешить от всех
    </прокси>
    Прокси-запросы выключены
    ProxyPreserveHost включен
    ПроксиПасс / http://10.0.0.3/
    ПроксиПассРеверс / http://10.0.0.3/
    RewriteEngine включен
</ виртуальный хост>
</ЕслиМодуль>

<Виртуальный хост *:80>
  имя_сервера c.example.com
  <Прокси *>
    Отклонить заказ, разрешить
    Разрешить от всех
  </прокси>
  Прокси-запросы выключены
  ProxyPreserveHost включен
  ПроксиПасс / http://10.0.0.3/
  ПроксиПассРеверс / http://10.0.0.3/
  RewriteEngine включен
  RewriteCond %{SERVER_NAME} =c.example.com
  RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</ виртуальный хост>

Без общедоступного хоста, то есть если частный хост 1 подключен к Интернету, а его общедоступный IP-адрес сопоставляется с доменным именем и перенаправляет на контейнер srv1 через один обратный прокси-сервер, тогда он работает нормально. Однако, когда общедоступный прокси-сервер связан поверх внутреннего прокси-сервера 1, происходит следующее: 1). http://c.example.com показывает значение по умолчанию index.html Apache2 с общедоступного хоста 2). https://c.example.com отказывается подключаться.

Каждый уровень (общедоступный хост, частный хост и сервер) имеет свой собственный сертификат SSL, но он вторичен. На данный момент даже http не работает. Любые идеи?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.