Moin,
mein Setup geht etwas weiter, als von UpSpin beschrieben ... die Richtung ist jedoch dieselbe.
Ich habe einen eigenes Docker-Image, basierend auf webdevops/php-apache und verlinke die Zertifikate direkt mit dem dazu passenden Container. Im eigenen Docker-Image wurden einige Konfigurationen angepasst, so dass ich mehrere virtuelle Hosts (sogenannte vHosts) über einzelne Konfigurationen erstellen kann. Auch werden beim Erzeugen des Images automatisch die in webdevops/php-apache fehlenden Module proxy, proxy_http, proxy_ajp, rewrite, deflate, headers, proxy_connect und proxy_html dem eigenen Apache2-Image hinzugefügt.
NextCloud läuft nun direkt im Docker-Container, welcher unter Verwendung meines eigenen Images erstellt wurde. Da die Zertifikate nun im Container verlinkt werden, benötige ich für NextCloud keinen ReverseProxy. Diesen benötige ich aber für andere Dienste, wie Urbackup, welches aufgrund des verwendeten BTRFS in einer eigenen VM laufen muss und nativ ohne Anpassungen nur HTTP zur Verfügung stellt. Daher stammt auch die vorher gepostete Konfiguration.
Theoretisch sollte die gepostete Konfiguration, sobald die Zertifikate in "/opt/docker/etc/httpd/vhost.ssl.conf" richtig konfiguriert sind auch direkt passen. Eine Notwendigkeit besteht allerdings nicht, sobald die Zertifikate im php-apache-Container liegen und NextCloud im selben Container läuft. Dann kann dieser die Zertifikate direkt und ohne ReverseProxy verwenden. Hier hängt es etwas davon ab, wie meine Infrastruktur funktionieren soll/tatsächlich funktioniert.
Da allerdings über die Gui von Qnap keine einzelnen Dateien verlinkt werden können, sondern nur Verzeichnisse, ist mein Ansatz etwas komplizierter zu bewerkstelligen. Dadurch wird mindestens ein eigenes docker-compose.yml zur Erstellung des Containers benötigt. Für solche Dinge verwende ich durchweg Scripte und die Konsole der Qnap.
Ich hoffe, ich konnte die Verwirrung etwas entwirren.
Ciao
ariaci
Apropos:
Ich halte es nicht für unbedingt gut, einen simplen ReverseProxy allein in einer VM zu betreiben. Der Overhead einer VM ist im Vergleich zu einem Docker-Container immens hoch. In meinem Fall benötigt der eigene php-apache-Container gerademal 484 MB Platz auf der Platte. RAM und CPU werden mit 0% nicht einmal messbar. Dies liegt daran, dass Docker im Kernel des Hosts in einem sogenannten eigenen Namespace läuft. Dadurch wird für syscalls deutlich weniger Performance benötigt, als bei einer VM, die quasi erst einmal alles für den Host "übersetzen" muss. Auch sind Updates in einer VM deutlich komplexer zu bewerkstelligen und Fehlerfälle schwieriger zu beheben, da das gesamte OS mit betroffen ist/sein könnte. Backups einer VM sind auch schwieriger zu handhaben. Unter Docker verlinke ich lediglich die passenden Ordner des Hosts und schon kann der Host Backups anfertigen. Eine VM sollte durchgängig unabhängig vom Host laufen.