Hallo Leute,
ich habe ein Problem bei der Download-Geschwindigkeit, wenn ich Nextcloud hinter einem Reverse-Proxy lege.
Hier meine Konfiguration:
WAN: VDSL mit Lancom-Router (250MBit/s Downstream, 40MBit/s Upstream)
Nextcloud: Version 33 auf einer VM mit Ubuntu 20.04 und Apache Webserver
Wenn ich den Lancom so konfiguriere, dass eine Port-Weiterleitung direkt auf die Nextcloud-VM stattfindet, dann erreiche ich aus dem Internet eine Download-Rate von nahezu 40 MBit/s. Also die maximale Upload-Rate des WAN-Anschlusses auf Nextcloud-Seite.
Schalte ich nun aber einen Reverse-Proxy dazwischen, dann bricht mir die Download-Rate auf 3,5 bis 4,5 MBit/s runter. Hier die Konstellation mit Reverse Proxy:
Reverse-Proxy: (NPM) Nginx-Proxy-Manager 2.15.1 im Docker Container
Docker Host ist ein Synology NAS (Business Class Gerät) mit absolut ausreichend CPU Power und viel RAM.
VM Host ist eine separater Server mit ESXi 8 (nicht das Synology). Synology und ESXi befinden sich im gleichen LAN (gleiches Subnetz).
Port-Mapping im Lancom auf den Nginx-Proxy-Manager (öffentlich Port 443 / HTTPS) eingerichtet.
Intern zwischen Reverse-Proxy und Nextcloud wird ebenfalls HTTPS verwendet.
Auszüge aus meiner Nextcloud config.php
'trusted_domains' => array (
0 => 'meine.eigene.domaene',
1 => 'LAN-IP-der-Nextcloud-VM',
),
'trusted_proxies' => array (
0 => 'LAN-IP des Docker Hosts',
),
'overwrite.cli.url' => 'https://meine.eigene.domaene',
'overwriteprotocol' => 'https',
'overwritehost' => 'meine.eigene.domaene',
meine Einstellungen im npm:
Schema: https
Forwared IP: LAN-IP-der-Nextcloud-VM
Port: 443
Cache Assets: disabled
Gängige Exploids blockieren: disabled
WebSockets Supports: enabled
Erzwinge SSL: enabled
HTTP/2 Support: enabled
Unter Advanced noch folgende Einstellungen
proxy_set_header Connection "";
client_max_body_size 10G;
proxy_buffering off;
proxy_request_buffering off;
proxy_max_temp_file_size 0;
proxy_connect_timeout 3600s;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_pass_header X-Transmission-Session-Id;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_hide_header Upgrade;
keepalive_timeout 3600s;
client_body_timeout 120s;
client_header_timeout 120s;
send_timeout 3600s;
tcp_nodelay on;
location /.well-known/carddav { return 301 $scheme://$host/remote.php/dav; }
location /.well-known/caldav { return 301 $scheme://$host/remote.php/dav; }
location ^~ /.well-known { return 301 $scheme://$host/index.php$uri; }
In beiden Systemen (Reverse-Proxy und im Nextcloud) wird das identische SSL-Zertifikat verwendet.
Die Upload-Rate (Datei hochladen aus dem Internet zu Nextcloud) funktioniert bei beiden Konstellationen etwa gleich schnell. Nur den Download über den Reverse-Proxy ist so unbefriedigend langsam. Hat jemand Erfahrung mit NPM im Docker.