Назад | Перейти на главную страницу

Dockerized Apache + SSL за NGINX в качестве обратного прокси

У меня есть два контейнера, в одном из которых работает NGINX как обратный прокси для нескольких других контейнеров. В одном из других контейнеров работает Apache с включенным и настроенным SSL. Я видел несколько примеров конфигурации, в которых, насколько я понимаю, NGINX обрабатывает сертификаты вместо Apache и просто передает все остальное в какой-то Apache без SSL.

Теперь я бы предпочел, чтобы Apache обрабатывал свои собственные сертификаты, особенно потому, что это облегчает мне жизнь при управлении ими (используя dockerized letsencrypt, который монтирует тома из соответствующего контейнера Apache и сбрасывает сертификаты во всех нужных местах).

Проблема в том, что я не могу найти какой-либо пример конфигурации для NGINX, чтобы просто прозрачно проксировать все через контейнер Apache.

Это потому, что nginx не может этого сделать.

Он может разорвать SSL-соединение, но не может его пройти.

У вас есть как минимум два варианта:

  1. Вставьте сертификаты SSL в крошечный том Docker, который используется совместно вашим контейнером letsencrypt и контейнером nginx. Пока вы это делаете, вы также можете позволить nginx перехватывать задачи Let's Encrypt, что может немного упростить вашу архитектуру.
  2. Используйте haproxy вместо nginx. В отличие от nginx, haproxy может проходить через SSL-соединения (и делать множество других вещей, которые полезны при установке в контейнерах). Обратите внимание, что для этого требуется поддержка SNI, поэтому такие сайты не будут доступны для старых веб-клиентов, которые не могут поддерживать SNI.