Nginx Fehler 413 Request Entity Too Large

Bei größeren Dateiuploads kann es vorkommen, das nginx die Fehlermeldung „413 Request Entity Too Large“ anzeigt und den Dateiupload abbricht. Diese Standard Einstellung gibt es, um den Webserver vor zu großen Dateien zu schützen und diese Fehlermeldung kann man ganz leicht beheben.

Dafür gibt es den Konfigurationsparameter „client_max_body_size“, wenn dieser nicht gesetzt ist, hat er den Wert 1m. Dadurch wird der Upload auf die maximale Größe von 1MB beschränkt.

Wie man hier in Zeile 3 sehen kann. Diesen Wert kann man nun auf eine entsprechende Größe anpassen oder auf 0 setzen, um das Limit ganz zu entfernen, dies ist allerdings nicht zu Empfehlen.

PHP Upload Limit anpassen

Eine ähnliche Einstellung gibt es auch in der php.ini, diese Datei findet man unter dem Pfad /etc/php/7.0/fpm/php.ini (7.0 ist durch die genutzte PHP Version zu ersetzen). In dieser Datei sucht man nach „upload_max_filesize“.

Diesen Wert kann man nun ebenfalls auf die benötigte Größe einstellen.

Konfig Dateien neu laden

Nachdem man diese Änderungen vorgenommen hat, muss man die Konfigurationsdateien neu laden. Diese kann man mit diesen Befehlen erledigen:

 

Und schon ist ein Upload von größeren Datei über nginx und PHP möglich.

Nginx 1.10.3 auf Ubuntu installieren

Vor kurzem wurde Nginx 1.9.1 (auch die neueren Versionen) veröffentlicht über die Paketverwaltung kann man diese Version allerdings noch nicht herunterladen, darum erkläre ich weiter unter wie es möglich ist.

Nginx ist im Vergleich zu Apache ein sehr schneller Webserver.

In der Version 1.9.1 bietet Nginx folgendes neues:

  • SSLv3 wird standardmäßig deaktiviert
  • einige lange veraltet Richtlinien werden nicht mehr unterstützt
  • der Parameter „reuseport“ wurde hinzugefügt
  • Fixes, für Nginx, die ausfallen könnten, um auf einige alte Linux-Varianten zu
  • Das Stream Modul wurde hinzugefügt um TCP Verbindungen zu verwalten
  • Und einige Buxfixes

Um Nginx auf Ubuntu zu installieren benötigt man zunächst Nginxs Signing Key:

Diesen binden wir dann in unser System ein:

Danach müssen wir noch die Nginx’s repository hinzufügen, dazu öffnen wir ein neues Dokument:

Und fügen dort folgendes ein:

„codename“ muss mit dem Namen eures Ubunuts ersetzt werden und kann über

abgefragt werden.

(Ubunut  14.04 LTS ist bekannt als Trusty, eine Liste gibt es hier: https://wiki.ubuntu.com/DevelopmentCodeNames , der Name darf dabei nur Kleinbuchstaben beinhalten.)

Wenn Nginx bereits installiert ist, empfiehlt es sich Nginx und alle dazugehörigen Pakete zunächst zu deinstallieren:

Nun können wir Nginx 1.9.1 endlich installieren:

Das war es nun um Nginx auf Ubuntu zu installieren.
Viel Spaß dabei.