На моем веб-сервере Ubuntu 16 установлен Docker для Mailcow Nginx
Единственное отличие, которое я имею от вашей настройки, - это HTTP_BIND:
Моя выглядит так:
HTTP_PORT=8080
HTTP_BIND=0.0.0.0
HTTPS_PORT=8443
HTTPS_BIND=0.0.0.0
Я установил привязки только на 0.0.0.0, чтобы я мог получить доступ к своему почтовому серверу через порт 8080 или 8443 с любого IP-адреса в случае, если мой веб-сервер apache не работает.
mail.domain.com-le-ssl.conf [сгенерировано посредством шифрования]
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName mail.example.com
ProxyPass / http://example.com:8080/
ProxyPreserveHost On
SSLCertificateFile /etc/letsencrypt/live/mail.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mail.example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
Моя конфигурация виртуального хоста apache2 для обратного прокси: mail.example.com.conf
<VirtualHost *:80>
ServerName mail.example.com
ProxyPass / http://example.com:8080/
ProxyPreserveHost On
RewriteEngine on
RewriteCond %{SERVER_NAME} =mail.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
Обратите внимание, что мой исходный файл конфигурации apache2:
<VirtualHost *:80>
ServerName mail.example.com
ProxyPass / http://example.com:8080/
ProxyPreserveHost On
</VirtualHost>
Поскольку мне не нужно ssl-шифрование между apache и nginx, правило перезаписи было добавлено, когда я установил давайте зашифруем сертификат на почтовом сервере apache для mail.example.com.
Мне нравится и используется только веб-клиент SOGo, поэтому мне не нужен почтовый ssl-сертификат. Если вы собираетесь использовать внешний почтовый клиент, то вы можете рассмотреть возможность указания файла сертификата Mailcow ssl на файлы, созданные encrypt-apache2
Другими словами:
[Мне] --- SSL: 443 ---> [mail.example.com] - локальный -> http://example.com:8080/
Может быть, я мог бы достичь того же результата, если бы я установил свой адрес BIND, как ваш, и он должен быть более безопасным.
Возможно http://localhost.com:8080/ тоже будет работать.
Я уверен, что мои настройки почтительны, это моя первая попытка.
Пожалуйста, дайте мне знать, если вам нужна информация о моей настройке.
Это учебные пособия и документация, за которыми я следовал, чтобы запустить их.
https://www.digitalocean.com/community/tutorials/how-to-use-apache-as-a-reverse-proxy-with-mod_proxy-on-ubuntu-16-04
https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-16-04
https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-16-04
https://mailcow.github.io/mailcow-dockerized-docs/firststeps-rp/
https://www.youtube.com/watch?v=VsiYowuiT6A&t=389s
https://www.youtube.com/watch?v=A3Prx_2YEm8&t=62s