Bandbreiten Limit für Nextcloud

Hey meine lieben, ich habe ein Problem.
Und zwar habe ich einen Ubuntu 22.04 Server und darauf nun Nginx installiert vorher lief Apache2.
Bei Apache2 hatte ich für Nextcloud da der Server bei mir Zuhause steht eine Bandbreiten Limitierung gehbat auf 2MB weil mein Maximaler Upload nach außen 4.5MB hergibt somit blieb noch Bandbreite fürs Heimnetz etc.
Bei Apache 2 habe ich mit diesen block:

activate bandwidth limitation

BandwidthModule On
ForceBandWidthModule On
BandWidth 192.168.10.0/24 0

limit total bandwidth to 1MB/s

Bandwidth all 7340032

limit max. connections to 25

MaxConnection all 25

Meine Bandbreite für außen beschränken können und intern auf unbegrenst lassen können.
nun bin ich seit Wochen am testen und Probieren und bekomme dies in Nginx nicht hin jede Anleitung von Nginx die ich oder IT Freunde Probiert haben greift nicht.

Hat jemand von euch vllt eine Idee oder gar eine Config die genau das macht wie es in Apache 2 ging ?

Die Nextcloud läuft nicht in einen Container etc sondern wurde Nativ auf dem System Installiert.

Habe mitlerweile festgestellt das ander seiten sich drosseln lassen vom Upload / Download nur Nextcloud nicht.

PUSH

Problem besteht weiterhin…

PUSH

Kann mir keiner sagen wie ich die Banbreite für Nextcloud im Upload sowie Download auf und von meinem Server Limitieren / Begrenzen kann? Hat wirklich keiner eine Idee oder die selbe Problematik?

Schon mal in die nginx-Anleitung geschaut?
Hier ist etwas weiter unten (unteres Drittel) die Bandbreiten-Limitierung beschrieben:

Vielleicht funktioniert es auch bei Dir.

Hast du vielleicht eine FritzBox!? Dann kannst du es vielleicht auch dort konfigurieren.

Hab ich schon versucht greift leider nicht Nextcloud ballert weiter mit maximaler Bandbreite.

Jap nutze eine FritzBox aber keine ahnung wo ich da den Upload und Download vom Server begrenzen könnte.

Hier mal meine Aktuelle Config

upstream php-handler {
#server 127.0.0.1:9000;
server unix:/var/run/php/php8.1-fpm.sock;
}

Set the immutable cache control options only for assets with a cache busting v argument

map $arg_v $asset_immutable {
“” “”;
default “immutable”;
}

server {
if ($host = XXX) {
return 301 https://$host$request_uri;
}

listen 80;
listen [::]:80;
server_name XXX;

# Prevent nginx HTTP Server Detection
server_tokens off;

# Enforce HTTPS
return 301 https://$server_name$request_uri;

}

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name XXX;

# Path to the root of your installation
root /var/www/nextcloud;

# Use Mozilla's guidelines for SSL/TLS settings
# https://mozilla.github.io/server-side-tls/ssl-config-generator/
#ssl_certificate     /etc/ssl/nginx/cloud.example.com.crt;
#ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key;

# Prevent nginx HTTP Server Detection
server_tokens off;

# HSTS settings
# WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.
#add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" always;

# set max upload size and increase upload timeout:
#client_max_body_size 512M;
client_max_body_size 0;
client_body_timeout 300s;
#fastcgi_buffers 64 4K;
fastcgi_buffers 32 32k;

# Enable gzip but do not remove ETag headers
gzip on;
gzip_vary on;
gzip_comp_level 9;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf>

# Pagespeed is not supported by Nextcloud, so if your server is built
# with the `ngx_pagespeed` module, uncomment this line to disable it.
#pagespeed off;

# The settings allows you to optimize the HTTP2 bandwitdth.
# See https://blog.cloudflare.com/delivering-http-2-upload-speed-improvements/
# for tunning hints
client_body_buffer_size 512k;

# HTTP response headers borrowed from Nextcloud `.htaccess`
add_header Referrer-Policy                   "no-referrer"       always;
add_header X-Content-Type-Options            "nosniff"           always;
add_header X-Download-Options                "noopen"            always;
add_header X-Frame-Options                   "SAMEORIGIN"        always;
add_header X-Permitted-Cross-Domain-Policies "none"              always;
add_header X-Robots-Tag                      "noindex, nofollow" always;
add_header X-XSS-Protection                  "1; mode=block"     always;
############################
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";
# Remove X-Powered-By, which is an information leak
# Remove X-Powered-By, which is an information leak
fastcgi_hide_header X-Powered-By;

# Specify how to handle directories -- specifying `/index.php$request_uri`
# here as the fallback means that Nginx always exhibits the desired behaviour
# when a client requests a path that corresponds to a directory that exists
# on the server. In particular, if that directory contains an index.php file,
# that file is correctly served; if it doesn't, then the request is passed to
# the front-end controller. This consistent behaviour means that we don't need
# to specify custom rules for certain paths (e.g. images and other assets,
# `/updater`, `/ocm-provider`, `/ocs-provider`), and thus
# `try_files $uri $uri/ /index.php$request_uri`
# always provides the desired behaviour.
index index.php index.html /index.php$request_uri;

# Rule borrowed from `.htaccess` to handle Microsoft DAV clients
location = / {
    if ( $http_user_agent ~ ^DavClnt ) {
        return 302 /remote.php/webdav/$is_args$args;
    }
}

location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
}

# Make a regex exception for `/.well-known` so that clients can still
# access it despite the existence of the regex rule
# `location ~ /(\.|autotest|...)` which would otherwise handle requests
# for `/.well-known`.
location ^~ /.well-known {
    # The rules in this block are an adaptation of the rules
    # in `.htaccess` that concern `/.well-known`.
    location = /.well-known/carddav { return 301 /remote.php/dav/; }
    location = /.well-known/caldav  { return 301 /remote.php/dav/; }

    location /.well-known/acme-challenge    { try_files $uri $uri/ =404; }
    location /.well-known/pki-validation    { try_files $uri $uri/ =404; }

    # Let Nextcloud's API for `/.well-known` URIs handle all other
    # requests by passing them to the front-end controller.
    return 301 /index.php$request_uri;
}

# Rules borrowed from `.htaccess` to hide certain paths from clients
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)  { return 404; }
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console)                { return 404; }

# Ensure this block, which passes PHP files to the PHP process, is above the blocks
# which handle static assets (as seen below). If this block is not declared first,
# then Nginx will encounter an infinite rewriting loop when it prepends `/index.php`
# to the URI, resulting in a HTTP 500 error response.
location ~ \.php(?:$|/) {
    # Required for legacy support
    rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode\/proxy) /index.php$request_uri;

    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    set $path_info $fastcgi_path_info;

    try_files $fastcgi_script_name =404;

    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $path_info;
    fastcgi_param HTTPS on;

    fastcgi_param modHeadersAvailable true;         # Avoid sending the security headers twice
    fastcgi_param front_controller_active true;     # Enable pretty urls
    fastcgi_pass php-handler;

    fastcgi_intercept_errors on;
    fastcgi_request_buffering off;

    fastcgi_max_temp_file_size 0;        
}

location ~ \.(?:css|js|svg|gif|png|jpg|ico|wasm|tflite|map)$ {
    try_files $uri /index.php$request_uri;
    add_header Cache-Control "public, max-age=15778463, $asset_immutable";
    access_log off;     # Optional: Don't log access to assets

    location ~ \.wasm$ {
        default_type application/wasm;
    }
}

location ~ \.woff2?$ {
    try_files $uri /index.php$request_uri;
    expires 7d;         # Cache-Control policy borrowed from `.htaccess`
    access_log off;     # Optional: Don't log access to assets
}

# Rule borrowed from `.htaccess`
location /remote {
    return 301 /remote.php$request_uri;
}

location / {
    try_files $uri $uri/ /index.php$request_uri;
}

#ssl_certificate XXX;
ssl_certificate XXX;
ssl_certificate_key XXX;

}

Kann dir leider bei nginx nicht helfen. Hatte bei meiner Ubuntu-Server 22.04 -Version auch nur Probleme mit nginx. Jetzt mit apache2 läuft es gut. Würde empfehlen, wieder auf Apache zu wechseln.

Bin erst auf Nginx gegangen weil es deutlich besser und Schneller ist als Apache2 und grade andere Webseiten von mir darüber richtig schnell laden.

Ich konnte keinen Unterschied feststellen. Nginx hatte bei mir immer Probleme mit den Browser- Zertifikaten. Wenn alles bei dir läuft würden mich die Einstellungen und deine regelmäßige Zertifizierung interessieren. Viel Erfolg.

Ja du musst bei nginx ein Bundle erstellen und das einbinden statt das .crt sowie den .key dann geht das.

PUSH

Problem besteht leider noch immer…

PUSH

Problem besteht leider noch immer…

Nextcloud lässt sich via Nginx nicht im UP-Download Trosseln.

Schon mal daran gedacht, im nginx-Forum nachzufragen? - Dein Problem hat ja primär nichts mit Nextcloud zu tun.

Das Problem hat ausschließlich mit Nextcloud zu tu, da Nginx andere Webseiten problemlos Drosselt sofern ich dies Einstelle.

Nur bei Nextcloud habe ich das Problem das dies sie egal was ich mache nicht im Upload sowie Download Drosseln lässt.

PUSH

Porblem noch ungelöst…

Push…

Nextcloud Problem besteht noch immer Nginx Forum kann mir nicht weiterhelfen…

Du kannst jetzt noch 3 Monate so weitermachen, ich hätte in dieser Zeit auf Apache umgestellt.