Hallo zusammen,
folgende Situation: auf meiner DS laufen mehrere Docker Container, die ich über Portainer verwalte. Ich habe außerdem ein macvlan im Betrieb in diesem Zusammenhang. Pi-Hole, Unbound und Vaultwarden funktionieren auch ohne Probleme. Das Pi-Hole nutze ich als DNS-Server und habe hier eigene Domains, die ich zu den einzelnen Diensten/Websites lotse.
Auf meiner DS habe ich mehrere rein lokale Websites laufen, unter anderem ein MediaWiki. Das ist zu erreichen unter (IPs und Hostnamen geändert) 192.168.1.28/MediaWiki. Nun möchte ich gerne mit der Adresse wiki.example.com, die rein lokal bei mir im LAN läuft und von einem von eigener CA unterschriebenen Zertifikat dieses Wiki erreichen. Ich hab im DSM-internen Reverse Proxy Manager GUI keine Option finden können auf eine Unterseite, also /mediawiki, zu verweisen. Inzwischen weiß ich wie ich als root im Nginx einene .conf's anlegen kann. Allerdings möchte ich eher ungerne langfristig im Nginx der Syno DS rumfuhrwerken, da ich hier schon mal Probleme hatte nach DSM-Updates. Und eigentlich wäre mir ein GUI auch lieber. Also bin ich auf den Nginx Proxy Manager als Docker Container gekommen. Funktioniert auch, Vaultwarden beispielsweise kann ich prima unter vault.example.com verschlüsselt erreichen. Der Pi-Hole-DNS-Server löst entsprechend auf, wie gesagt.
Allerdings gibt es anscheinend das Problem, dass der Nginx-PM-Container keinen Reverse Proxy auf die DS leiten kann. Mir ist schon bekannt, dass Host und Container Prinzip-bedingt erstmal nicht miteinander kommunizieren können und mir ist auch die Möglichkeit bekannt eine Bridge für das macvlan zu erstellen. Das hab ich auch gemacht und sie funktioniert auch - allerdings offensichtlich nur einseitig. Also ich kann aus der DS-Kommandokonsole heraus, nachdem die Brücke erstellt wurde, den Nginx-PM und auch die anderen Container erfolgreich anpingen. Trotzdem gibt es immer einen "502 Bad Gateway" zurück wenn ich die im Nginx konfigurierte Domain aufrufe, also wiki.example.com. Die verweist auf 192.168.1.28/mediawiki.
Folgende Fehlermeldung im Log des Nginx-PM gibt es:
Reproduzierbar. Ich weiß ehrlich gesagt nicht wie ich mal versuchen könnte aus dem Container heraus die DS anzupingen, aber ich fürchte, dass das eben nicht funktionieren wird. Anders herum (DS --> Container) funktioniert es.
Hier noch die entsprechende .Conf aus dem Nginx-PM, falls das zum Verständnis hilft:
Hat Jemand eine Idee, wie ich die Kommunikation Container --> DS hinbekomme? Oder noch andere Ideen/Gedanken dazu? Ich kann natürlich gerne auch noch mehr Infos geben wenn benötigt.
Vielen Dank schon mal und viele Grüße
folgende Situation: auf meiner DS laufen mehrere Docker Container, die ich über Portainer verwalte. Ich habe außerdem ein macvlan im Betrieb in diesem Zusammenhang. Pi-Hole, Unbound und Vaultwarden funktionieren auch ohne Probleme. Das Pi-Hole nutze ich als DNS-Server und habe hier eigene Domains, die ich zu den einzelnen Diensten/Websites lotse.
Auf meiner DS habe ich mehrere rein lokale Websites laufen, unter anderem ein MediaWiki. Das ist zu erreichen unter (IPs und Hostnamen geändert) 192.168.1.28/MediaWiki. Nun möchte ich gerne mit der Adresse wiki.example.com, die rein lokal bei mir im LAN läuft und von einem von eigener CA unterschriebenen Zertifikat dieses Wiki erreichen. Ich hab im DSM-internen Reverse Proxy Manager GUI keine Option finden können auf eine Unterseite, also /mediawiki, zu verweisen. Inzwischen weiß ich wie ich als root im Nginx einene .conf's anlegen kann. Allerdings möchte ich eher ungerne langfristig im Nginx der Syno DS rumfuhrwerken, da ich hier schon mal Probleme hatte nach DSM-Updates. Und eigentlich wäre mir ein GUI auch lieber. Also bin ich auf den Nginx Proxy Manager als Docker Container gekommen. Funktioniert auch, Vaultwarden beispielsweise kann ich prima unter vault.example.com verschlüsselt erreichen. Der Pi-Hole-DNS-Server löst entsprechend auf, wie gesagt.
Allerdings gibt es anscheinend das Problem, dass der Nginx-PM-Container keinen Reverse Proxy auf die DS leiten kann. Mir ist schon bekannt, dass Host und Container Prinzip-bedingt erstmal nicht miteinander kommunizieren können und mir ist auch die Möglichkeit bekannt eine Bridge für das macvlan zu erstellen. Das hab ich auch gemacht und sie funktioniert auch - allerdings offensichtlich nur einseitig. Also ich kann aus der DS-Kommandokonsole heraus, nachdem die Brücke erstellt wurde, den Nginx-PM und auch die anderen Container erfolgreich anpingen. Trotzdem gibt es immer einen "502 Bad Gateway" zurück wenn ich die im Nginx konfigurierte Domain aufrufe, also wiki.example.com. Die verweist auf 192.168.1.28/mediawiki.
Folgende Fehlermeldung im Log des Nginx-PM gibt es:
Code:
2024/02/24 17:21:12 [error] 338#338: *806 connect() failed (113: No route to host) while connecting to upstream, client: 192.168.1.201, server: wiki.example.com, request: "GET / HTTP/2.0", upstream: "http://192.168.1.28:80/mediawiki/", host: "wiki.example.com"
Reproduzierbar. Ich weiß ehrlich gesagt nicht wie ich mal versuchen könnte aus dem Container heraus die DS anzupingen, aber ich fürchte, dass das eben nicht funktionieren wird. Anders herum (DS --> Container) funktioniert es.
Hier noch die entsprechende .Conf aus dem Nginx-PM, falls das zum Verständnis hilft:
Code:
map $scheme $hsts_header {
https "max-age=63072000; preload";
}
server {
set $forward_scheme http;
set $server "192.168.1.28";
set $port 80;
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name wiki.example.com;
# Custom SSL
ssl_certificate /data/custom_ssl/npm-1/fullchain.pem;
ssl_certificate_key /data/custom_ssl/npm-1/privkey.pem;
# Force SSL
include conf.d/include/force-ssl.conf;
access_log /data/logs/proxy-host-2_access.log proxy;
error_log /data/logs/proxy-host-2_error.log warn;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://192.168.1.28:80/mediawiki/;
# Force SSL
include conf.d/include/force-ssl.conf;
}
# Custom
include /data/nginx/custom/server_proxy[.]conf;
}
Hat Jemand eine Idee, wie ich die Kommunikation Container --> DS hinbekomme? Oder noch andere Ideen/Gedanken dazu? Ich kann natürlich gerne auch noch mehr Infos geben wenn benötigt.
Vielen Dank schon mal und viele Grüße