it-swarm.com.de

nginx - Der Clientanforderungstext wird in eine temporäre Datei gepuffert

Jedes Mal, wenn ich versuche, 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 client_body_buffer_size Auf 1000m Erhöht, was meiner Meinung nach die größte hochgeladene Datei ist. Dies war jedoch nur eine Vermutung und obwohl ich diesen Fehler nicht mehr erhalte, frage ich mich, ob dies ein angemessener Wert für client_body_buffer_size Ist.

Ich würde es begrüßen, wenn jemand etwas Licht in diese Richtlinie bringen könnte und wie sie angewendet werden sollte.

53
Abs

Dies ist eine Warnung, kein Fehler. Deshalb wurde [warn] im Protokoll.

Dies bedeutet, dass die Größe der hochgeladenen Datei größer war als der für Uploads reservierte In-Memory-Puffer.

Die Richtlinie client_body_buffer_size steuert die Größe dieses Puffers.

Wenn Sie es sich leisten können, 1 GB RAM immer für den gelegentlichen Upload von Dateien reserviert zu haben), ist das in Ordnung. Es ist eine Leistungsoptimierung, den Upload in RAM) zu puffern als 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.

Am Ende können nur Sie wirklich die Entscheidung treffen, welche Größe angemessen ist.

56
Michael Hampton

Wenn Sie nicht möchten, dass NginX den Body-Inhalt in einer temporären Datei speichert, können Sie Ihre Konfiguration festlegen. so was:

    client_body_buffer_size     10M;
    client_max_body_size        10M;

Wenn Sie beide Konfigurationen auf die gleiche max. Größe (in k, M oder G für kB, MB bzw. GB) verhindern Sie, dass NginX eine temporäre Temperatur erstellt. Datei.

Für 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

20
eddy85br