SNAP Nextcloud - Slow Speed

Support intro

Sorry to hear you’re facing problems. :slightly_frowning_face:

The community help forum (help.nextcloud.com) is for home and non-enterprise users. Support is provided by other community members on a best effort / ā€œas availableā€ basis. All of those responding are volunteering their time to help you.

If you’re using Nextcloud in a business/critical setting, paid and SLA-based support services can be accessed via portal.nextcloud.com where Nextcloud engineers can help ensure your business keeps running smoothly.

Getting help

In order to help you as efficiently (and quickly!) as possible, please fill in as much of the below requested information as you can.

Before clicking submit: Please check if your query is already addressed via the following resources:

(Utilizing these existing resources is typically faster. It also helps reduce the load on our generous volunteers while elevating the signal to noise ratio of the forums otherwise arising from the same queries being posted repeatedly).

Some or all of the below information will be requested if it isn’t supplied; for fastest response please provide as much as you can. :heart:

The Basics

  • Nextcloud Server version (e.g., 29.x.x):
    • 32.0.2snap1 - 51274
  • Operating system and version (e.g., Ubuntu 24.04):
    • Ubuntu 24.04.3 LTS
  • Web server and version (e.g, Apache 2.4.25):
    • I don't know, snap manage Apache
  • Reverse proxy and version _(e.g. nginx 1.27.2)
    • nginx/1.24.0 (Ubuntu)
  • PHP version (e.g, 8.3):
    • I don't know, snap manage PHP
  • Is this the first time you’ve seen this error? (Yes / No):
    • No
  • When did this problem seem to first start?
    • Since the first installation
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    • SNAP
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • No

Summary of the issue you are facing:

The download / upload speed is very slow, I tested all the ecosystem near NextCloud and it’s perfect. If I upload some files using SFTP in my LAN, everything works just fine, I’ve got 1gbps in upload directly to the hdd of NextCloud, but with NextCloud I’ve got like 60mbps. I tried to enable https directly using snap → NextCloud (sudo nextcloud.enable-https) the situation is better, I can connect directly using the LAN address (https://192.168.1.128:8443) and I’ve got 1gbps speed, like SFTP. When I turn on my NGINX proxy server to connect to NextCloud remote, the speed is capped at like 60/70mbps. I’ll attach the nginx conf that I’m using.

NextCloud is hosted in a server with the following specs:

AMD Ryzen 5 9600X

RAM: 32GB (DDR5 6000mhz)

1gbps network speed to the router (1gbps download & 300mbps upload)

Ubuntu is hosted on an SSD NVME (7000mbps speed)

NextCloud is installed with SNAP and it has two 8TB IronWolf PRO hdd with zfs mirror

If you need more details I’ll give them to you, if you could help me fixing this problem, that would be really great! Thank you so much in advance :smiley:

Steps to replicate it (hint: details matter!):

  1. When I upload / download a file, I’ve got the issue

Log entries

Nextcloud

Please provide the log entries from your Nextcloud log that are generated during the time of problem (via the Copy raw option from Administration settings->Logging screen or from your nextcloud.log located in your data directory). Feel free to use a pastebin/gist service if necessary.

GNU nano 7.2         /var/snap/nextcloud/current/logs/nextcloud.log                                              
{"reqId":"O4g4ne2QwNXS9tMh2sMP","level":2,"time":"2025-11-30T05:06:39+00:00","remoteAddr":"","user":"--","app":"no app in context","method":">
{"reqId":"xY8OXQuKZr3e8KfyrRNg","level":3,"time":"2025-12-01T21:27:02+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app in>
{"reqId":"Wa53dQDL4qgeyKY75F1o","level":3,"time":"2025-12-01T21:27:02+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app in>
{"reqId":"jKzhD6I79VJkuPEBozOT","level":3,"time":"2025-12-01T21:27:02+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app in>
{"reqId":"4iMzJZ4vxtK3AZaLBad7","level":3,"time":"2025-12-01T21:27:02+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app in>
{"reqId":"lC3ncZU4f4qNHeNOXltj","level":3,"time":"2025-12-01T21:27:02+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app in>
{"reqId":"TOOOoYM5d2ADlDVLQpLH","level":3,"time":"2025-12-01T22:22:48+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app >
{"reqId":"Lz1gOOUJCUuGPMIppyvn","level":3,"time":"2025-12-01T22:22:48+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app >
{"reqId":"lhd5NlESJUfXz6rnswkq","level":3,"time":"2025-12-01T22:22:48+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app >
{"reqId":"egPbedtbhquYtTDp7lGX","level":3,"time":"2025-12-01T22:22:48+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app >
{"reqId":"uE3huE1V4rXoSjBDjdS7","level":3,"time":"2025-12-01T22:22:48+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app >
{"reqId":"Z3c2NBEOr7aGf8vNn9Bu","level":3,"time":"2025-12-01T22:25:01+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app >
{"reqId":"qVShLH1ql5XbPoZ7clqK","level":3,"time":"2025-12-01T22:25:01+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app >
{"reqId":"NKsswfv4CGnOxaVVFGJh","level":3,"time":"2025-12-01T22:25:01+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app >
{"reqId":"y1W3dt2I5La9Tub4dPSb","level":3,"time":"2025-12-01T22:25:01+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app >
{"reqId":"6xtvdILZPlUdBxnLKzKb","level":3,"time":"2025-12-01T22:25:01+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app >
{"reqId":"oIgfAZpYpOoPQ4XsKyxw","level":3,"time":"2025-12-01T22:27:17+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app >
{"reqId":"F9j4aCdfUTUPeZeVJMt4","level":3,"time":"2025-12-01T22:27:17+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app >
{"reqId":"k9j6d0y2IKirQdaNIcIf","level":3,"time":"2025-12-01T22:27:17+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app >
{"reqId":"AeGUyAbYwgAgcKZCHpUV","level":3,"time":"2025-12-01T22:27:17+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app >
{"reqId":"ykR1qMbdsaASh4lIWfaL","level":3,"time":"2025-12-01T22:27:17+00:00","remoteAddr":"xxx","user":"andreatagini","app":"no app >

Web Browser

If the problem is related to the Web interface, open your browser inspector Console and Network tabs while refreshing (reloading) and reproducing the problem. Provide any relevant output/errors here that appear.

PASTE

Web server / Reverse Proxy

The output of your Apache/nginx/system log in /var/log/____:

# Redirect da HTTP a HTTPS
server {
    listen 80;
    server_name xxx.xxx.it;

    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }

    location / {
        return 301 https://$host$request_uri;
    }
}

# Server principale HTTPS con HTTP/2
server {
    listen 443 ssl http2;
    server_name xxx.xxx.it;

    ssl_certificate path_to_/fullchain.pem;
    ssl_certificate_key path_to_/privkey.pem;

    # Sicurezza base
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    add_header Permissions-Policy "geolocation=(), camera=(), microphone=(), payment=()" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header Referrer-Policy "no-referrer-when-downgrade" always;

    http2_push_preload on;

    # Rimuovi limite sul body
    client_max_body_size 0;

    # Posizione principale: upload/download
    location / {
        proxy_pass http://127.0.0.1:8400;

        proxy_set_header Host $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_http_version 1.1;

        # Buffer ottimizzati per upload grandi
        proxy_request_buffering off;
        proxy_buffering off;

        # Timeout lunghi
        proxy_read_timeout 3600s;
        proxy_send_timeout 3600s;
        send_timeout 3600s;

        proxy_redirect off;
    }

    # Gestione file statici Nextcloud (CSS, JS, immagini)
    location ~* \.(?:css|js|svg|gif|png|jpg|ico|woff2?|ttf|map)$ {
        proxy_pass http://127.0.0.1:8400;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache_valid 200 301 302 7d;
        expires 7d;
        access_log off;
    }

    # Proteggi file sensibili
    location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README|LICENSE) {
        deny all;
    }
}

Configuration

Nextcloud

The output of occ config:list system or similar is best, but, if not possible, the contents of your config.php file from /path/to/nextcloud is fine (make sure to remove any identifiable information!):

{
    "system": {
        "apps_paths": [
            {
                "path": "\/snap\/nextcloud\/current\/htdocs\/apps",
                "url": "\/apps",
                "writable": false
            },
            {
                "path": "\/var\/snap\/nextcloud\/current\/nextcloud\/extra-apps",
                "url": "\/extra-apps",
                "writable": true
            }
        ],
        "supportedDatabases": [
            "mysql"
        ],
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "memcache.local": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "port": 0
        },
        "log_type": "file",
        "logfile": "\/var\/snap\/nextcloud\/current\/logs\/nextcloud.log",
        "logfilemode": 416,
        "maintenance_window_start": 1,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "localhost",
            "xxx.domain.it",
            "192.168.1.128",
        ],
        "overwriteprotocol": "https",
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "32.0.2.2",
        "overwrite.cli.url": "http:\/\/192.168.1.128:8400",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "maintenance": false,
        "loglevel": 2,
        "mail_smtpmode": "smtp",
        "mail_smtpsecure": "ssl",
        "mail_sendmailmode": "smtp",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "465",
        "mail_smtpauth": true,
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "debug": false,
        "overwritehost": "xxx.domain.it"
    }
}

Apps

The output of occ app:list (if possible).

Tips for increasing the likelihood of a response

  • Use the preformatted text formatting option in the editor for all log entries and configuration output.
  • If screenshots are useful, feel free to include them.
    • If possible, also include key error output in text form so it can be searched for.
  • Try to edit log output only minimally (if at all) so that it can be ran through analyzers / formatters by those trying to help you.

Hey @Andrea_Tagini welcome to the Nextcloud community :waving_hand:

:+1: well done! so its certainly neither a snap nor a Nextcloud issue then… more likely your reverse proxy is incorrectly configured or some other network issue

is that NGINX Proxy Manager, or ding cum NGINX? please show your configs

it seems you have not configured you trusted proxies at all:

see

and

Hi,

thank you so much for the help!

I’ve configured trusted proxies and NextCloud works very good, also outside my home network, the problem is the speed of upload / download, not the functionality of NC. I’m using NGINX as a proxy in front of next cloud. I’ll attach the config that I’m using for NC.

Nextcloud is listening on 8400 port (http) and https is disabled

I tried to follow the guides that you sent to me, but unfortunately those didn’t work for me.

# Redirect da HTTP a HTTPS
server {
    listen 80;
    server_name cloud.mydomain.it;

    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }

    location / {
        return 301 https://$host$request_uri;
    }
}

# Server principale HTTPS con HTTP/2
server {
    listen 443 ssl http2;
    server_name cloud.mydomain.it;

    ssl_certificate fullchain.pem;
    ssl_certificate_key privkey.pem;

    # Sicurezza base
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    add_header Permissions-Policy "geolocation=(), camera=(), microphone=(), payment=()" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header Referrer-Policy "no-referrer-when-downgrade" always;

    http2_push_preload on;

    # Rimuovi limite sul body
    client_max_body_size 0;

    # Posizione principale: upload/download
    location / {
        proxy_pass http://127.0.0.1:8400;

        proxy_set_header Host $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_http_version 1.1;

        # Buffer ottimizzati per upload grandi
        proxy_request_buffering off;
        proxy_buffering off;

        # Timeout lunghi
        proxy_read_timeout 3600s;
        proxy_send_timeout 3600s;
        send_timeout 3600s;

        proxy_redirect off;
    }

    # Gestione file statici Nextcloud (CSS, JS, immagini)
    location ~* \.(?:css|js|svg|gif|png|jpg|ico|woff2?|ttf|map)$ {
        proxy_pass http://127.0.0.1:8400;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache_valid 200 301 302 7d;
        expires 7d;
        access_log off;
    }

    # Proteggi file sensibili
    location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README|LICENSE) {
        deny all;
    }
}

@Andrea_Tagini,

so nginx is running on the same host as the snap right?

you use the localhost ip-address instead of the host ip-address. try the host ip-address instead, also check Hosts & FQDN configuration especially this https://github.com/nextcloud-snap/nextcloud-snap/wiki/Hosts-and-FQDN-for-Nextcloud-snap#fqdn-for-nextcloud-snap-instance-vm-or-container-behind-reverse-proxy-with-termination

FQDN for Nextcloud snap instance, vm or container behind reverse proxy with termination

Setting FQDN (Fully Qualified Domain Name) is best practice and is optional on self-hosted Nextcloud snap instances running on vm or container behind reverse proxy with termination and may improve site response.

  • Discover hostname:
    • issue command
 hostnamectl

or

 hostname
  • Set or change hostname:
    • issue command
hostnamectl set-hostname NEW-HOSTNAME
  • Set FQDN on instance behind reverse proxy with termination:
    • edit /etc/hosts in vm or container using your favourite editor as root $ sudo nano /etc/hosts and add second line replacing <your.reverse.proxy.ip> <your.domain.xyz> and <hostname> with your own domain name and hostname:
127.0.0.1       localhost
<your.reverse.proxy.ip>   <your.domain.xyz>   <hostname>

## The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

your issue sounds like some sort of DNS issue, its always DNS :laughing:
do you have some sort of local DNS like Pihole running in the local network? if so, you should tell the local DNS about your Nextcloud instance. Hosts and FQDN for Nextcloud snap Ā· nextcloud-snap/nextcloud-snap Wiki Ā· GitHub

one more question… is that the download/upload speed in the browser or Nextcloud Client?

@scubamuc

Hi,

Thank you for your help and for the time that you’re using for me!

yes, Nginx is running on the same host as the snap & Nextcloud.

I used the local IP address instead of the localhost ip, as shown below, but nothing changed, I’m like 60/70 mbps of speed (down&up), on the same network and from outside my home network.

proxy_pass http://192.168.1.128:8400;

I set up the FQDN behind reverse proxy like you told me to do, I attach my /etc/hosts file down below. Using the configuration with the local IP inside the Nginx config file nothing changed on performance side.

127.0.0.1 localhost
127.0.1.1 server-tagini

192.168.1.128 cloud.mydomain.it server-tagini

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

I had PiHole running on the same server in a container, but I had the same performance problems before & after PiHole, but now I’m not using PiHole anymore. Now I’m using just the DNS from my provider.

All the tests that I’m performing are made with both of the those, with nextcloud client and with the browser (Google Chrome).

my pleasure

well done, good job :+1:

its clear Pihole is not the cause then… you should keep using Pihole, its a great piece of software!

well, you’ve done everything by the book, I’m out of ideas :upside_down_face: but be patient, there are some really clued up folks here in the forum who will certainly help…

Hi,

thank you so much for your help, I hope someone will help me to fix this problem :smiley:

I’ll reconsider PiHole :slight_smile:

Have a good evening!

Is the outward facing IP address of your reverse proxy on a different subnet?

What I’m getting at is the data path different when you go via the reverse proxy?

Hi @jtr ,

no, everything is the same subnet, 192.168.1.0/24

Even the public facing side of your Nginx proxy?

Hi guys,

Thank you so much for your help.

I solved the problem switching to NPM (Nginx Proxy Manger), instead of using ā€œnormalā€ Nginx.

Merry Christmas to everyone!

1 Like

This topic was automatically closed 8 days after the last reply. New replies are no longer allowed.