Я установил новый сервер Ubuntu18 с Nextcloud и Rocketchat, установленным через снимок.
После включения letsencrypt, Nextcloud слушает на порте 443 и Rocketchat на порте 3000.
Я хотел бы, чтобы оба послушали на порте 443 на основе доменных имен, не имея необходимость иметь дело с их сертификатами. (https://rocketchat.example.com:443 и https://nextcloud.example.com:443).
Когда я искал, кажется, что я должен установить апача или nginx и сделать прокси-сервер. Но все имело дело непосредственно с сертификатами, которых я хотел бы избежать. Действительно ли это возможно?
Этот вопрос дал мне подсказку о том, как сделать, и я пришел к следующему файлу конфигурации для апачского обратного прокси:
nextcloud.conf:
LoadModule ssl_module modules/mod_ssl.so
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerName nextcloud.example.com
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
SSLCertificateFile /var/snap/nextcloud/current/certs/live/fullchain.pem
SSLCertificateKeyFile /var/snap/nextcloud/current/certs/live/privkey.pem
Proxypass / https://localhost:44300/
ProxypassReverse / https://localhost:44300/
</VirtualHost>
</IfModule>
rocketchat.conf:
<VirtualHost _default_:443>
ServerName rocketchat.example.com
SSLCertificateFile /etc/letsencrypt/live/chat.ljp.upmc.fr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/chat.ljp.upmc.fr/privkey.pem
<Location />
Order allow,deny
Allow from all
</Location>
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) ws://localhost:3000/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /(.*) http://localhost:3000/$1 [P,L]
ProxyPassReverse / http://localhost:3000/
</VirtualHost>