Wie kann man die Dateigröße für Uploads in Nginx erhöhen?

Veröffentlicht 13. Oktober 2024

Problem: Begrenzungen der Dateigröße für Uploads in Nginx

Nginx, ein Webserver, hat standardmäßig Begrenzungen für die Größe von Datei-Uploads, die große Dateiübertragungen verhindern können. Diese Begrenzung kann Probleme verursachen, wenn große Dokumente, Mediendateien oder Datensätze über Webanwendungen auf Nginx-Servern hochgeladen werden sollen.

Auffinden der Nginx-Konfigurationsdatei

Häufige Speicherorte der Nginx-Konfigurationsdatei

Die Nginx-Konfigurationsdatei befindet sich normalerweise an einem dieser Orte:

  • /etc/nginx/nginx.conf
  • /usr/local/nginx/conf/nginx.conf

Dies sind die Standardpfade für die Haupt-Nginx-Konfigurationsdatei. Der genaue Speicherort kann je nach Installationsmethode von Nginx und Ihrem Betriebssystem variieren.

Tipp: Paketmanager überprüfen

Wenn Sie Nginx mit einem Paketmanager wie apt oder yum installiert haben, können Sie den Speicherort der Konfigurationsdatei oft durch Überprüfen der Paketinformationen finden. Zum Beispiel können Sie auf Ubuntu- oder Debian-Systemen Folgendes verwenden:

dpkg -L nginx | grep nginx.conf

Dieser Befehl listet alle vom Nginx-Paket installierten Dateien auf und filtert nach der nginx.conf-Datei.

Fehlerbehebung bei fehlenden Konfigurationsdateien

Wenn Sie die Nginx-Konfigurationsdatei nicht an den erwarteten Stellen finden können, versuchen Sie diese Schritte:

  1. Nginx-Installation überprüfen: Führen Sie nginx -v aus, um zu überprüfen, ob Nginx installiert ist und um die Version zu sehen.

  2. Verwenden Sie Kommandozeilentools, um nach Konfigurationsdateien zu suchen:

    • Nach nginx.conf suchen:
      sudo find / -name nginx.conf
    • Nach jeder Datei mit "nginx" im Namen suchen:
      sudo find / -name "*nginx*"

Wenn diese Schritte Ihnen nicht helfen, die Konfigurationsdatei zu finden, ist Nginx möglicherweise nicht auf Ihrem System installiert oder befindet sich an einem nicht standardmäßigen Speicherort.

Ändern der Nginx-Einstellungen zur Erhöhung der Upload-Größe

Bearbeiten der Nginx-Konfigurationsdatei

Um die Begrenzung der Dateigröße für Uploads in Nginx zu erhöhen, müssen Sie die Nginx-Konfigurationsdatei bearbeiten:

  1. Öffnen Sie die Konfigurationsdatei mit einem Texteditor:

    sudo nano /etc/nginx/nginx.conf

    Verwenden Sie den korrekten Pfad, falls sich Ihre Konfigurationsdatei an einem anderen Ort befindet.

  2. Finden Sie den Abschnitt, in dem Sie Änderungen vornehmen möchten. Sie können die client_max_body_size-Direktive im http-, server- oder location-Kontext platzieren. Sie befindet sich oft im server-Block.

Anpassen des client_max_body_size Parameters

Um die maximal erlaubte Größe des Client-Request-Body zu ändern:

  1. Fügen Sie die client_max_body_size-Direktive hinzu oder ändern Sie sie:

    client_max_body_size 100M;

    Dies setzt die maximale Upload-Größe auf 100 Megabyte. Ändern Sie diesen Wert nach Bedarf.

  2. Falls die Direktive bereits existiert, ändern Sie den Wert. Falls nicht, fügen Sie die Zeile im richtigen Abschnitt Ihrer Konfigurationsdatei hinzu.

  3. Verwenden Sie M für Megabyte oder G für Gigabyte. Verwenden Sie nicht MB oder GB, da diese nicht funktionieren werden.

  4. Sie können unterschiedliche Limits für verschiedene Locations setzen:

    location /upload {
       client_max_body_size 500M;
    }

    Dies setzt ein 500MB-Limit für die /upload-Location.

  5. Speichern Sie die Änderungen und verlassen Sie den Texteditor.

Testen Sie Ihre Konfiguration und laden Sie Nginx neu, nachdem Sie diese Änderungen vorgenommen haben. Stellen Sie sicher, dass Ihre PHP-Einstellungen (falls zutreffend) mit Ihrem neuen Nginx-Upload-Größenlimit übereinstimmen.

Tipp: PHP-Upload-Einstellungen überprüfen

Wenn Sie PHP mit Nginx verwenden, denken Sie daran, auch die Upload-Einstellungen von PHP anzupassen. Bearbeiten Sie Ihre php.ini-Datei und ändern Sie diese Werte:

upload_max_filesize = 100M
post_max_size = 100M

Ersetzen Sie 100M durch Ihr gewünschtes Limit. Starten Sie PHP-FPM nach diesen Änderungen neu.

Testen und Anwenden der neuen Konfiguration

Überprüfen der Nginx-Konfigurationssyntax

Nachdem Sie die Nginx-Konfigurationsdatei geändert haben, überprüfen Sie auf Syntaxfehler, bevor Sie die Änderungen anwenden. Verwenden Sie diesen Befehl, um die Konfiguration zu überprüfen:

sudo nginx -t

Dieser Befehl testet die Nginx-Konfigurationsdateien und meldet Fehler. Wenn der Test erfolgreich ist, sehen Sie eine Meldung, dass der Konfigurationstest erfolgreich war und die Syntax in Ordnung ist.

Wenn es Fehler gibt, zeigt der Befehl Details zum Problem und dessen Ort in der Konfigurationsdatei an. Beheben Sie diese Fehler, bevor Sie fortfahren.

Tipp: Sichern Sie Ihre Konfiguration

Bevor Sie Änderungen an Ihrer Nginx-Konfiguration vornehmen, erstellen Sie ein Backup Ihrer aktuellen Konfigurationsdatei. Dies ermöglicht es Ihnen, Änderungen bei Bedarf schnell rückgängig zu machen:

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup

Neuladen oder Neustarten von Nginx

Sobald Sie bestätigt haben, dass die Konfigurationssyntax korrekt ist, wenden Sie die neuen Einstellungen an. Es gibt zwei Hauptmethoden:

  1. Nginx neu laden: Diese Methode unterbricht keine aktiven Verbindungen. Verwenden Sie diesen Befehl:

    sudo nginx -s reload

    Oder, wenn Sie systemd verwenden:

    sudo systemctl reload nginx
  2. Nginx neu starten: Wenn ein Neuladen nicht alle Änderungen anwendet, müssen Sie möglicherweise Nginx neu starten. Dies unterbricht alle aktiven Verbindungen:

    sudo systemctl restart nginx

Nach dem Neuladen oder Neustarten von Nginx sollte die neue Begrenzung der Dateigröße für Uploads aktiv sein. Testen Sie Ihre Datei-Upload-Funktion, um zu bestätigen, dass größere Dateien jetzt hochgeladen werden können.

Überwachen Sie die Leistung Ihres Servers, nachdem Sie die Upload-Größenbegrenzung erhöht haben, da die Verarbeitung größerer Datei-Uploads möglicherweise mehr Serverressourcen benötigt.