Мультисайт против нескольких контейнеров

Решил поделиться обновлением о своей ситуации.

После некоторых исследований я решил, что мне нужна настройка для нескольких сайтов (на данном этапе — один контейнер) с внешним сайтом nginx, который будет объяснять конфигурацию и перенаправлять пользователей и трафик на отдельные сайты Discourse. Таким образом, я смогу открыть оба сайта для доступа только на чтение (и для веб-краулеров), не заставляя участников list1 сталкиваться с контентом из list2. Возможно, мне придётся поэкспериментировать с robots.txt, чтобы удовлетворить требования веб-краулеров.

Примеры настройки для нескольких сайтов были полезны, но мне не удалось заставить их работать с unix-сокетом (ошибка шлюза), поэтому я перенаправил их на другой порт, а затем перенаправил этот порт на 443 внутри контейнера.

В моём файле app.yml я включил шаблон SSL, но не шаблон letsencrypt.

Мне удалось запустить тестовый сайт, теперь я ищу возможные проблемы, которые могут возникнуть при переносе на производственный сайт, надеюсь, в конце этого или следующем месяце.

Я занимаюсь вопросом сертификатов на стороне внешнего сервера, но столкнулся с проблемой «небезопасное соединение», которую решил, потребовав использование HTTPS внутри контейнера. У меня есть задача, которую я буду запускать через cron для копирования последнего сертификата и ключа в директорию /shared/ssl контейнера (как ssl.crt и ssl.key). Не уверен, нужно ли будет принудительно перезагружать nginx внутри контейнера, чтобы убедиться, что новый сертификат загружается при его изменении (в июле, думаю).

Я также столкнулся с одной особенностью Discourse:

В файле /etc/nginx/conf.d/discourse.conf внутри контейнера есть следующий фрагмент кода (доменное имя изменено):

if ($http_host != ‘site1.my.domain’) {
rewrite (.*) https://site1.my.domain$1 permanent
}

Это вызывало перенаправление site2.my.domain на site1.my.domain, поэтому мне пришлось закомментировать этот фрагмент.

ПРИМЕЧАНИЕ: Пересборка контейнера требует повторного выполнения этого редактирования. Есть ли способ этого избежать?

Это также привело к проблеме в браузере: теперь Firefox пометил это перенаправление как постоянное, поэтому мне пришлось очистить кэш браузера. (Мне потребовалось слишком много времени, чтобы это понять!)

Я также обнаружил ещё одну странность.

На моём тестовом сайте параметр, требующий использования HTTPS, не был установлен ни для одного из сайтов. На производственном сайте этот параметр даже отсутствует в файле настроек. Думаю, это связано с различиями между двумя сайтами.