У меня есть следующий сценарий:
У меня есть статический IP-адрес от моего интернет-провайдера. Я использовал это в течение многих лет на маленьком сервере Rasbian на Raspberry PI, работающем с owncloud.
Теперь я купил гораздо более мощный пакет zotac (четырехъядерный процессор, 8 ГБ ОЗУ, 256 ГБ SSD), и я пытаюсь получить как сервер owncloud, работающий на https, так и сервер rocket.chat (аналог Slack) который, конечно, также должен работать на https.
Коробка Zotac работает под управлением Ubuntu Server 18.04 LTS и находится за маршрутизатором Airport Extreme. У меня есть 2 разных поддоменов в основном домене, указывающих на мой IP-адрес.
Я настроил маршрутизацию для портов 80
, 443
и 8443
чтобы все перенаправлялись на локальный IP-адрес моего zotac box 192.168.1.33
. Пример:
Сервер owncloud (Apache 2 с PHP 7.2 и MySQL 5.7) работает на https://cloud.mydomain.example
и теперь я хочу, чтобы rocket.chat работал на https://chat.mydomain.example:8443
или даже лучше. Просто на https://chat.mydomain.com
.
Rocket.chat поставляется в быстрой установке, где rocket.chat работает на веб-сервере caddy на localhost:3000
. Я попытался выполнить настройку https, описанную в https://rocket.chat/docs/installation/manual-installation/ubuntu/snaps/autossl/, но не смог заставить его работать. Я также попытался настроить Apache, который запускает сервер owncloud, для работы в качестве обратного прокси-сервера, как описано в https://stackoverflow.com/questions/8541182/apache-redirect-to-another-port, но мне не удалось заставить его работать.
Затем я попытался настроить виртуальный хост для порта 8443 с помощью этого файла rocketchat.conf:
<VirtualHost *:8443>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/private/ssl/apache-selfsigned.key
ServerAdmin admin@example.com
ServerName localhost
ProxyPreserveHost On
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / https://localhost:3000/
ProxyPassReverse / https://localhost:3000/
</VirtualHost>
Я также не понимаю, почему я не могу просто заставить моего caddy прослушивать порт 8443 (и по-прежнему использовать https), в то время как Apache прослушивает 80 и 443.
Какая будет оптимальная настройка для моего сценария? Какие шаги необходимо предпринять?