Bei jedem Versuch, eine große Datei hochzuladen, wird in meinen Protokolldateien der folgende Fehler angezeigt.
a client request body is buffered to a temporary file /var/lib/nginx/body/0000000001
Obwohl die Datei erfolgreich hochgeladen wurde, wird immer der obige Fehler angezeigt.
Ich habe den Wert erhöht, client_body_buffer_size
auf 1000m
den ich die größte hochgeladene Datei erwarte. Dies war jedoch nur eine Vermutung, und obwohl ich diesen Fehler nicht mehr erhalte, frage ich mich, ob dies ein angemessener Wert für das client_body_buffer_size
?
Ich würde es begrüßen, wenn jemand etwas Licht in diese Richtlinie und ihre Verwendung bringen könnte.
Antworten:
Dies ist eine Warnung, kein Fehler. Deshalb wurde es
[warn]
im Protokoll vorangestellt .Dies bedeutet, dass die Größe der hochgeladenen Datei größer war als der für Uploads reservierte In-Memory-Puffer.
Die Direktive
client_body_buffer_size
steuert die Größe dieses Puffers.Wenn Sie es sich leisten können, 1 GB RAM immer für das gelegentliche Hochladen von Dateien zu reservieren, ist das in Ordnung. Es ist eine Leistungsoptimierung, den Upload im RAM zu puffern und nicht in einer temporären Datei auf der Festplatte, obwohl bei so großen Uploads ein paar zusätzliche Sekunden wahrscheinlich nicht viel ausmachen. Wenn die meisten Ihrer Uploads klein sind, ist es wahrscheinlich eine Verschwendung.
Letztendlich können nur Sie wirklich die Entscheidung treffen, welche Größe angemessen ist.
quelle
Wenn Sie den Inhalt von NginX nicht in einer temporären Datei speichern möchten, können Sie Ihre Konfiguration festlegen. so was:
Wenn Sie beide Konfigurationen gleichzeitig auf max. Größe (in k, M oder G für kB, MB oder GB) verhindern Sie, dass NginX eine temporäre Datei erstellt. Datei.
Weitere Informationen: http://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_buffer_size und http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size
quelle
client_max_body_size
Parameter. Siehe die Informationen unter diesem Link: client_max_body_size doc. :Sets the maximum allowed size of the client request body, specified in the “Content-Length” request header field. If the size in a request exceeds the configured value, the 413 (Request Entity Too Large) error is returned to the client. Please be aware that browsers cannot correctly display this error. Setting size to 0 disables checking of client request body size.