Перейти к содержанию

Обзор

Вам не нужно изменять сайт 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