Nginx config. Zwei Server hinter Fritzbox

Folgende Situation: ich habe zwei #Raspberry Pis hinter meiner Fritzbox. Auf beiden laufen verschiedene Server. Auf Raspi 2 läuft nextcloudpi. Ich möchte die nextcloud jetzt von außen zugänglich machen. Dazu setze ich einen cname Eintrag in den records meiner Domain. Jedoch gibt es verschiedene Probleme mit dem Setting. Ich habe auf Raspi 1 einen #nginx als reverse proxy laufen. Ich habe versucht die Anfragen an nextcloud.mydomain.de an den Raspi 2…mit der nextcloudpi weiterzuleiten. Jedoch scheint das die Browser zu verwirren, da dann die lokale IP meines nextcloudpis als Ziel in der Adresszeile erscheint. Da geht es dann natürlich nicht weiter.
Des Weiteren beschweren sich alle Browser und Programme, dass die certs auf nextcloud.mydomain.de ausgestellt sind und nicht auf die interne IP.

Wie kann ich das sauber lösen, dass Anfragen an nextcloud.mydomain.de an den Raspi 2 geleitet werden?

Eintrag in nginx
server {
server_name nextcloud.mydomain.de;
location / {
proxy_pass http://192.168.178.241;
}
}

Mit Beschreibungen wie

Kann nun wirklich niemand was anfangen.

Wenn du Hilfe willst, musst du auch die notwendigen technischen Daten, wie Konfigurationsdateien, DNS-Einträge und genauen Fehlermeldungen parat stellen.

Nun, wie gesagt, gebe ich nextcloud.mydomain.de ein. Dann wird durch die nginx Weiterleitung auf die lokale IP weitergeleitet. Diese steht dann auch in der Adresszeile des Browsers. Mit der lokalen IP kann natürlich kein Browser etwas anfangen, also wird die Seite nicht geladen.

Wenn ich Certs für nextcloud.mydomain.de beantrage und speichere, gibt es im Browser beim Aufrufen von nextcloud.mydomain.de eine Warnmeldung, dass ein anderer host (die lokale ip des ncp) angesteuert wird als der auf den die certs ausgestellt sind.

In den domain records mache ich einen cname Eintrag, der die subdomain nextcloud.mydomain.de auf meine IP verweist.

Port forwarding (80 und 443) im Router auf Raspi1, auf dem nginx läuft.

Nginx.config

server {
        server_name nextcloud.mydomain.de;
        location / {
                proxy_pass      http://192.168.236.12;
        }
}

Gib mal in deinem Browser https://nextcloud.mydomain.de mit https an. Ich schätze mal, dass der Redirect von HTTP auf HTTPS stört. Wobei auch der Redirect auf die Loginseite problematisch sein könnte, wenn die Nextcloud den Redirect macht und selbst denkt, auf der IP zu laufen.

Schon alles probiert. Sowohl http als auch https.
Jetzt wird die Cloud erstmal nur im Heimnetz oder von außen per Wireguard angesprochen. Solange bis ich mal wieder Zeit habe dran zu basteln. Dann werde ich mal den anderen Raspi vom Netz nehmen und schauen wie ncp reagiert wenn ich 80 und 443 direkt drauf forwarde.
Danke für die Antwort.

Ein CNAME-Record muss auf eine andere Domain verweisen, nicht auf eine IP-Adresse.

Ein CNAME-Record muss immer auf eine andere Domain verweisen. Es ist nicht zulässig, stattdessen eine IP-Adresse einzusetzen. Außerdem ist es nicht zulässig, das definierte Alias in anderen Record-Typen zu verwenden. Empfohlen wird zudem, einen CNAME-Eintrag nicht auf einen anderen CNAME-Eintrag verweisen zu lassen. Das führt zwar nicht zu einem Fehler, macht die Zonendatei aber unnötig komplex.

Quelle: https://www.ionos.de/digitalguide/hosting/hosting-technik/cname-record/

Ich wollte es abkürzen, weil es meiner Meinung keine Rolle spielt. Bei joker.com kann man einen dyndns Eintrag als domain erstellen und kann subdomains dann per cname an diese Domain weiterleiten.

DNS ist eine potenzielle Fehlerquelle. Das Weglassen von Informationen ist eher kontraproduktiv.

Prüfe zuerst, ob DNS wirklich korrekt eingerichtet ist - vom CNAME bis zum A-Record und überprüfe das mit externen Tools. DNS Änderungen können je nach TTL bis zu 24h dauern. Anschließend würde ich die Nginx Konfiguration kontrollieren, bspw. fehlt in deinem gekürzten Auszug $request_uri und u.a. weitere Header. Orientieren könnte man sich an der Reverse Proxy Dokumentation von Nextcloud-AIO.

Grundsätzlich funktioniert der Aufbau. Wo genau der Fehler in deinem Fall liegt, lässt sich aktuell nicht sagen.

Soweit ich mich jetzt eingelesen habe ist tatsächlich die Verbindung zwischen nginx und Server die Problemstelle. Es sind ein paar Einträge in die nc config nötig.
Wenn ich die Lösung habe, werde ich sie hier posten.
Danke für eure Hilfe bis hierhin.

In unserer Standard-Konfiguration sieht das in der config.php von Nextcloud so aus:

.....,
 'trusted_domains' => 
  array (
    0 => 'localhost',
    1 => 'nextcloud.mydomain.de',
  ),
  'trusted_proxies' => 
  array (
    0 => '192.168.0.1/32',
  ),
 ....

Die IP-Adresse ist die des Proxy, im vorliegenden Fall also die des Nginx. Die Domain ist entsprechend dem Beispiel. Ohne diese Einstellungen wird es nicht korrekt funktionieren.

Beim genannten Setup kann die Ursache oder eine weitere wie zuvor bereits von @nobody beschrieben auch davor liegen.

Das Eintragen der IP meines nginx als trusted proxy über die Web-Ui war die Lösung. Und natürlich noch die Ergänzung in der nginx config, die so aussehen muss, damit auch die entsprechenden Informationen den Server erreichen:

server {
        server_name nextcloud.mydomain.de;
        location / {
                proxy_pass      http://192.168.178.11;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
                client_max_body_size 0;

Dieses Thema wurde automatisch 7 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.