HSTS als zusätzliches Sicherheitsmerkmal halte ich schon für sinnvoll. Es erzwingt zum Beispiel auch, dass eine Domain über ein passendes Zertifikat abgesichert wird. Insgesamt einfach ein weiteres Plus an Sicherheit.
Da der Reverse Proxy nur entweder HTTPS oder HTTP erlaubt, aber nicht beides, ist es nicht so ganz trivial ein Redirect http->https per Haken einzurichten. Die GUI müsste immer auch prüfen, ob es nicht bereits ein HTTP Proxy für die Domain gibt. Der nginx merkt das auf jeden Fall und ignoriert einen der beiden Einträge im besten Fall oder läuft nicht mehr richtig im schlechten Fall.
Bezüglich der Subfolder wollte ich einfach eine weitgehend konsistente Konfiguration der Dienste haben. Zum Beispiel aktiviere ich im Anwendungsportal bei der Videostation den Alias und kann per domain/video darauf zugreifen. Zusätzlich ein Häkchen bei 'Benutzerdefinierte Domain' und video.domain ist auch möglich.
Da es nicht für alle gewünschten Systemen einen Video Station Client gibt, z.B. Kodi, habe ich einen Emby-Server laufen. Per Reverse Proxy über emby.domain erreichbar aber domain/emby lässt sich über die GUI nicht einrichten. Das habe ich dann halt auch über manuelle Konfiguration gemacht. Das funktioniert allerdings nicht mit allen Diensten. Sobald absolute und kein relativen Pfade verwendet werden, bekommt man nur Kraut und Rüben statt der gewünschten Oberfläche, z.B. bei mir mit Bitwarden.
Letztlich ist es das, was die Proxy GUI baut, angepasst für Subfolder. Hier als Beispiel für Emby und Calibre Content Server:
Rich (BBCode):
server {
listen 443 ssl http2;
server_name my.main.domain;
location /emby/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_intercept_errors on;
proxy_http_version 1.1;
proxy_pass http://localhost:8096/;
}
location /ebooks/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_intercept_errors on;
proxy_http_version 1.1;
proxy_pass http://localhost:8081/;
}
}
Die Konfiguration am besten immer mit sudo nginx -t testen und wenn erfolgreich mit sudo nginx -s reload aktivieren. Im Fehlerfall sagt nginx recht genau wo es hakt.