Обзор
Вам не нужно изменять сайт Nginx, входящий в состав animails. animails доверяет IP-адресу шлюза по умолчанию 172.22.1.1 как прокси-серверу.
Обязательно измените параметры HTTP_BIND и HTTPS_BIND в animails.conf на локальный адрес и установите соответствующие порты, например:
HTTP_BIND=127.0.0.1
HTTP_PORT=8080
HTTPS_BIND=127.0.0.1
HTTPS_PORT=8443
Это также изменит привязки внутри контейнера Nginx! Это важно, если вы решите использовать прокси внутри Docker.
ВАЖНО: Не используйте порты 8081, 9081 или 65510!
Пересоздайте затронутые контейнеры, выполнив команду:
docker compose up -d
docker-compose up -d
Важная информация, пожалуйста, прочтите внимательно!¶
Информация
Если вы планируете использовать обратный прокси-сервер и хотите использовать другое имя сервера, которое не совпадает с MAILCOW_HOSTNAME, вам необходимо прочитать раздел Добавление дополнительных имен серверов для интерфейса animails ниже.
Внимание
Убедитесь, что вы запустили generate_config.sh перед тем, как активировать любые примеры конфигурации сайта.
Скрипт generate_config.sh копирует временные (snake-oil) сертификаты в нужное место, чтобы службы не давали сбой при запуске из-за отсутствующих файлов.
Внимание
Если вы включите TLS SNI (ENABLE_SSL_SNI в animails.conf), пути к сертификатам в вашем обратном прокси должны соответствовать корректным путям в data/assets/ssl/{hostname}. Сертификаты будут разделены на data/assets/ssl/{hostname1,hostname2,и т.д.} и, следовательно, не будут работать, если вы скопируете примеры ниже, указывающие на data/assets/ssl/cert.pem и т.д.
Информация
Использование примеров конфигурации сайта позволит пересылать запросы ACME в animails, чтобы система сама управляла сертификатами. Минусом использования animails в качестве ACME-клиента за обратным прокси является то, что вам потребуется перезагружать веб-сервер после того, как acme-animails изменит/обновит/создаст сертификат. Вы можете либо перезагружать веб-сервер ежедневно, либо написать скрипт для отслеживания изменений в файле. На многих серверах logrotate в любом случае ежедневно перезагружает веб-сервер.
Если вы хотите использовать локальную установку certbot, вам потребуется соответствующим образом изменить параметры SSL-сертификатов. Обязательно запустите post-hook скрипт, если решите использовать внешние ACME-клиенты. Пример приведен ниже.
Настройте ваш локальный веб-сервер в качестве обратного прокси, используя следующие примеры конфигурации:
Опционально: Post-hook скрипт для сторонних ACME-клиентов¶
Использование локального certbot (или любого другого ACME-клиента) требует перезапуска некоторых контейнеров, что можно сделать с помощью post-hook скрипта. Убедитесь, что вы изменили пути соответствующим образом:
#!/bin/bash
cp /etc/letsencrypt/live/my.domain.tld/fullchain.pem /opt/animails/data/assets/ssl/cert.pem
cp /etc/letsencrypt/live/my.domain.tld/privkey.pem /opt/animails/data/assets/ssl/key.pem
postfix_c=$(docker ps -qaf name=postfix-animails)
dovecot_c=$(docker ps -qaf name=dovecot-animails)
nginx_c=$(docker ps -qaf name=nginx-animails)
docker restart ${postfix_c} ${dovecot_c} ${nginx_c}
Добавление дополнительных имен серверов для интерфейса animails¶
Если вы планируете использовать в обратном прокси имя сервера, отличное от MAILCOW_HOSTNAME, сначала обязательно внесите это имя в animails.conf через параметр ADDITIONAL_SERVER_NAMES. Имена должны быть разделены запятыми и не должны содержать пробелов. Если вы пропустите этот шаг, animails может ответить вашему обратному прокси некорректным сайтом.
ADDITIONAL_SERVER_NAMES=webmail.domain.tld,other.example.tld
Выполните следующую команду для применения изменений:
docker compose up -d
docker-compose up -d