Nextcloud hinter nginx

Moin,

ich hoffe ihr könnt mir helfen, ich finde keine passende Lösung.

Ich hoste ĂŒber eine Synology eine Nexcloud mit der Webstation.

Soweit lÀuft das System.

Aufbau sieht folgendermassen aus:

  • Netzbeginn FritzBox → lĂ€uft dann auf eigene Gateway und Netzwerkstruktur

  • Alles wird an den Reverse Proxy weitergegeben und von da verarbeitet.

  • Synology NAS → Webstation Nexcloud → erreichbar ĂŒber 10.10.6.18:9978 und nextcloud.xxxxx.de

  • Synology Nginx ĂŒber Docker erreichbar ĂŒber 10.10.6.18:xxxx

Nextcloud lÀuft in der aktuellen Version, ebenso der ngnx

Sobald ĂŒber die nextcloud.xxxxx.de zugegriffen wird, leitet der nginx seine interne IP 192.168.48.2 mit.

Problem ist, dass ich damit halt leider alle aussperre wenn etwas schief lĂ€uft und nicht den Anschluß, welcher evtl. als einziger der verursacher ist.

Ich habe jetzt schon ein paar Tage gelesen ĂŒber die weitergabe der remote IP von nginx, bekomme es aber nicht zum laufen.

wie muss ich das ganze realisieren?
Habt ihr eine gute beschreibung fĂŒr mich, evtl Bilder irgendwas was mir die Augen wieder öffnet???

Ich möchte halt einfach, dass die echte IP an Nextcloud weitergegeben wird, und nicht die Docker Netzwerk IP vom ngnx

Nach dem unzĂ€hligen lesen von BeitrĂ€gen hab ich einfach das GefĂŒhl, das ich blind geworden bin.

Meine Config Datei in nextcloud schaut bereits so aus:

‘trusted_domains’ =>
array (
0 => ‘10.10.6.18:9978’,
1 => ‘nextcloud.xxxxx.de’,
),
‘trusted_proxies’ =>
array (
0 => ‘10.10.6.18’, -----???
),
‘forwarded_for_headers’ =>
array (
0 => ‘HTTP_X_FORWARDED_FOR’,
),

Login failed mit IP Docker Netz Nginx

Da bist du auf dem richtigen Weg. Paar Dinge fehlen dir noch, dann mĂŒsste es funktionieren:

Kleiner Schönheitsfehler:

mit Ports zu arbeiten ist einfach nicht sexy. Einfach immer 443 zu nehmen, damit kein Port fĂŒr HTTPS angegeben werden muss und stattdessen mit hostnamen zu arbeiten ist viel schöner.

Guten Abend saettel.beifuss0,

danke fĂŒr die ErlĂ€uterung und das aufzeigen, das macht Mut, dass der Ansatz nicht ganz verkehrt war.

Ich hab die Zeilen in nginx angepasst wie auf dem Bild

In der Datei selber schaut es so aus:

------------------------------------------------------------

nextcloud.xxx.de

------------------------------------------------------------

map $scheme $hsts_header {
https “max-age=63072000; preload”;
}

server {
set $forward_scheme https;
set $server “10.10.6.18”;
set $port 9970;

listen 80;
listen [::]:80;

listen 443 ssl;
listen [::]:443 ssl;

server_name nextcloud.xxx.de;
http2 off;

Let’s Encrypt SSL

include conf.d/include/letsencrypt-acme-challenge.conf;
include conf.d/include/ssl-cache.conf;
include conf.d/include/ssl-ciphers.conf;
ssl_certificate /etc/letsencrypt/live/npm-9/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/npm-9/privkey.pem;

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;

access_log /data/logs/proxy-host-9_access.log proxy;
error_log /data/logs/proxy-host-9_error.log warn;

location / {

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;


# Proxy!
include conf.d/include/proxy.conf;

}

Custom

include /data/nginx/custom/server_proxy[.]conf;
}

Die Config Datei Nextcloud habe ich angepasst auf

‘trusted_domains’ =>
array (
0 => ‘10.10.6.18:9970’,
1 => ‘nextcloud.xxxde’,
),
‘trusted_proxies’ =>
array (
0 => ‘192.168.48.2’,
1 => ‘10.10.6.18’,
),
‘forwarded_for_headers’ =>
array (
0 => ‘HTTP_X_FORWARDED_FOR’,
),

leider erhalte ich den selben Fehler.

Es tut mir leid das ich mit vermutlich einem kleinen blöden Fehler so einen schönen Freitag Abend versaue fĂŒr jeden der das jetzt liest und sich damit gedanklich rumschlĂ€gt.

Liebe GrĂŒĂŸe

Hendrik

Weiterer kleiner Schönheitsfehler. Aber nur fĂŒr spĂ€ter, aktuell sollte es keine Rolle spielen.

Trusted domains ist ja nur welcher Domain du vertraust. Und weil du nicht local mit splitDNS oder hairpin NAT deine Nextcloud immer mit nextcloud.xxx.de aufrufen wirst (nur schon weil du sonst ein Zertifikatserror bekommst) brauchst du nie die 10.10.6.18:9970

Verstehe ich nicht. Deine einziger Proxy is doch NGINX auf der IP 10.10.6.18? Was macht der erste Eintrag hier?

Dumme Frage, aber was fĂŒr ein Fehler? Ansonsten scheint mir die Config korrekt zu sein und ich kann keinen Fehler entdecken.

Moin,

ah ok ja dann kann ich mir den ersten Eintrag sparen.

die 10.10.6.18 ist die Synology, wo nginx im Docker drauf lÀuft.
Dort erhÀlt nginx die interne Docker IP 192.168.48.1

Der “Fehler” den ich meinte war das die IP des Nginx gezeigt wird, und nicht so wie es sein soll die IP des “Anschlußes” im Original

GrĂŒĂŸe

Verstehe.

Kenne mich nicht aus mit Docker, und noch weniger mit Synology. Darum weiss ich gar nicht, ob du das ganze ein je zwei Docker am laufen hast, einmal AIO und einmal NGINX?
Hast du dies aus der reverse proxy config beachtet?

Utilize host networking instead of docker bridge networking: Specify --network host option (or network_mode: host for docker-compose) as setting for the reverse proxy container to connect it to the host network

Das könnte vielleicht dein Problem sein.