Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Nginx kann keine Dateien hochladen und weist darauf hin, dass die hochgeladene Datei zu groß ist. So lösen Sie das Problem

Nginx kann keine Dateien hochladen und weist darauf hin, dass die hochgeladene Datei zu groß ist. So lösen Sie das Problem

王林
王林nach vorne
2020-12-10 16:07:445112Durchsuche

Nginx kann keine Dateien hochladen und weist darauf hin, dass die hochgeladene Datei zu groß ist. So lösen Sie das Problem

Problembeschreibung:

Fehler beim Hochladen der Datei, die Dateigröße beträgt etwa 4 MB. Das Upload-Programm ist Java und wird über den Nginx-Reverse-Proxy in Fastdfs geschrieben, schlägt jedoch immer wieder fehl. Überprüfen Sie das Nginx-Fehlerprotokoll und der folgende Inhalt wird angezeigt:

client intended to send too large body: 4134591 bytes

(Verwandte Empfehlung: nginx-Tutorial)

Analyse:

Laut Fehlermeldung ist der vom Client gesendete Text zu groß. Die Standardgröße des Client-Textes von Nginx beträgt 1 MB.

Das offizielle Dokument lautet wie folgt:

Syntax: client_max_body_size size;
Default: client_max_body_size 1m;
Context: http, server, location
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.

Lösung:

Gemäß dem offiziellen Dokument können Sie Konfiguration, client_max_body_size; in den HTTP-, Server-, Standort- und anderen Konfigurationsblöcken in der Nginx-Konfigurationsdatei hinzufügen, um den Körper anzupassen Größe der erlaubten Client-Upload-Dateien. Auf 0 gesetzt, was bedeutet, dass es keine Begrenzung gibt.

Codebeispiel:

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
	
    client_max_body_size 100m;
	....
	}

Das obige ist der detaillierte Inhalt vonNginx kann keine Dateien hochladen und weist darauf hin, dass die hochgeladene Datei zu groß ist. So lösen Sie das Problem. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen