
Ich versuche, mit Apache mehrere Sites gleichzeitig zu bedienen. Die Struktur, die ich erhalten möchte, besteht aus einer Hauptsite unter example.com
und der Verwendung der Subdomains radarr.example.com
und sonarr.example.com
für den Zugriff auf meine Radarr- und Sonarr-Server.
Die Hauptseite wird gehostet aufMaschine1habe ich einen virtuellen Host mit Apache und Certbot eingerichtet:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName example.com
WSGIDaemonProcess sflasksite user=www-data group=www-data threads=5
WSGIScriptAlias / /var/www/webapp/app.wsgi
<Directory /var/www/webapp>
WSGIProcessGroup sflasksite
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Require all granted
</Directory>
Alias /static /var/www/webapp/static
<Directory /var/www/webapp/static/>
Order deny,allow
Require all granted
</Directory>
ErrorLog /var/www/webapp/logs/error.log
CustomLog /var/www/webapp/logs/access.log combined
SSLCertificateFile /etc/letsencrypt/live/example.com-0002/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com-0002/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
Die beiden Server, die ich bedienen möchte, sind aufMaschine2, im selben Netzwerk wieMaschine1, wie kann ich die beiden Dienste jeweils auf radarr.example.com
und beziehen sonarr.example.com
?
Nach einigem Lesen versuchte ich, eineReverse-Proxy, und konfigurieren Sie für jeden Dienst einen virtuellen Host wie folgt:
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
ServerAlias radarr.example.com
ProxyPass / http://192.168.1.20:7878/
ProxyPassReverse / http://192.168.1.20:7878/
ErrorLog /var/www/radarr/logs/error.log
CustomLog /var/www/radarr/logs/access.log combined
</VirtualHost>
und das Gleiche gilt für Sonarr.
Wenn ich jedoch zu navigiere radarr.example.com
, wird mir nicht der erwartete Dienst, sondern die Hauptseite angezeigt.
Wie kann ich den Reverse-Proxy zum Laufen bringen? Oder sollte ich zu einer ganz anderen Strategie wechseln?
EDIT: Ich bin auch bereit, Apache aufzugeben, wenn jemand einen einfacheren Weg kennt und vorschlagen kann.
Antwort1
Ich habe festgestellt, dass mein Problem darauf zurückzuführen war, dass ich SSL-Zertifikate nur für die Domäne mydomain.com und nicht für die Domäne radarr.mydomain.com installiert hatte. Ich habe certbot erneut für diese Domäne ausgeführt und jetzt funktioniert es.
Ich weiß nicht genau, warum es funktioniert. Wenn jemand eine Erklärung hat, posten Sie sie bitte und ich werde sie der Antwort hinzufügen.