92 Stimmen

Einstellen der zulässigen URL-Länge für eine Nginx-Anfrage (Fehlercode: 414, uri zu groß)

Ich verwende Nginx vor 10 Mongrels.

Wenn ich eine Anfrage mit einer Größe größer als 2900 stelle, erhalte ich eine Antwort:

Fehlercode 414: uri zu groß

Kennt jemand die Einstellung in der nginx-Konfigurationsdatei, die die zulässige uri-Länge bestimmt?

132voto

Stobor Punkte 42091

Von: http://nginx.org/r/large_client_header_buffers

Syntax: large_client_header_buffers number size ;
Standard: large_client_header_buffers 4 8k;
Kontext: http, Server

Legt die maximale number y size von Puffern, die für das Lesen großer Client-Request-Header verwendet werden. Eine Anfragezeile darf die Größe eines Puffers nicht überschreiten, andernfalls wird der Fehler 414 (Request-URI Too Large) an den Client zurückgegeben. Ein Anfrage-Header-Feld darf die Größe eines Puffers ebenfalls nicht überschreiten, sonst wird der Fehler 400 (Bad Request) an den Client zurückgegeben. Puffer werden nur bei Bedarf zugewiesen. Standardmäßig beträgt die Puffergröße 8K Bytes. Wenn nach dem Ende der Anfrageverarbeitung eine Verbindung in den keep-alive-Zustand übergeht, werden diese Puffer freigegeben.

Sie müssen also den Größenparameter am Ende dieser Zeile auf eine für Ihre Bedürfnisse größere Größe ändern.

2 Stimmen

Danke @VBart - damals, als ich diese Frage beantwortete, war das Wiki die einzige Dokumentation, daher wusste ich nicht, dass sie einen "offiziellen" Dokumentationsbereich hinzugefügt hatten.

0 Stimmen

Hallo, Sie sollten ; am Ende der Syntax large_client_header_buffers 4 4k/8k hinzufügen; es gibt einige faule Copy-Pasteure wie mich, denen Sie damit Zeit sparen können... ;)

1 Stimmen

Danke @talsibony - das war ein direktes Kopieren/Einfügen aus der Dokumentation vor über 7 Jahren, es sieht so aus, als hätten sie es seitdem aktualisiert. Ich werde es hier aktualisieren...

17voto

Luke Snowden Punkte 3700

Für alle, die Probleme mit dieser Funktion haben https://forge.laravel.com Ich habe es geschafft, dies mit einer Zusammenstellung von SO-Antworten zum Laufen zu bringen;

Sie benötigen das sudo-Passwort.

sudo nano /etc/nginx/conf.d/uploads.conf

Ersetzen Sie den Inhalt durch den folgenden Text;

fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;

client_max_body_size 24M;
client_body_buffer_size 128k;

client_header_buffer_size 5120k;
large_client_header_buffers 16 5120k;

0 Stimmen

Diese Datei scheint nicht mehr zu existieren, wenn man neue Server über Forge erstellt, was bedeutet, dass man sie direkt über das Forge-Adminpanel in den Serverblock einfügen kann.

5voto

ciostek223 Punkte 414

Ich hatte ein sehr ähnliches Problem, aber mit einem anderen Fehler

Upstream hat einen zu großen Header gesendet, während er den Antwort-Header vom Upstream gelesen hat

Um dies zu beheben, habe ich Folgendes geändert

server {
....
proxy_buffers   4 32k;
proxy_buffer_size   32k;
...
}

Weitere Informationen finden Sie unter nginx-doc

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X