Nginx predeterminado client_max_body_size

94

He estado recibiendo el error nginx:

413 Request Entity Too Large

He podido actualizar mi client_max_body_sizeen la sección del servidor de mi archivo nginx.conf a 20M y esto ha solucionado el problema. Sin embargo, ¿cuál es el nginx predeterminado client_max_body_size?

atw
fuente

Respuestas:

137

El valor predeterminado para la client_max_body_sizedirectiva es 1 MiB .

Se puede configurar en http, servery locationcontexto - como en las mayoría de los casos , esta directiva en un bloque anidado tiene prioridad sobre la misma Directiva en los antepasados bloques .

Extracto de la documentación de ngx_http_core_module :

Syntax:   client_max_body_size size;
Default:  client_max_body_size 1m;
Context:  http, server, location

Establece el tamaño máximo permitido del cuerpo de la solicitud del cliente, especificado en el campo de encabezado de la solicitud "Longitud de contenido". Si el tamaño de una solicitud excede el valor configurado, el error 413 (Solicitud de entidad demasiado grande) se devuelve al cliente. Tenga en cuenta que los navegadores no pueden mostrar correctamente este error. Establecer el tamaño en 0 inhabilita la verificación del tamaño del cuerpo de la solicitud del cliente.

No se olvide de volver a cargar la configuración por nginx -s reloado service nginx reloadcomandos con prepending sudo(si lo hay).

ruvim
fuente
2
Llegando tarde a notar que debe usar nginx -tpara probar su configuración antes de ejecutar nginx -s reloadpara aplicar los cambios de configuración. No puede garantizar que su configuración sea correcta, pero detectará errores de sintaxis o valores no válidos.
kungphu
2
Sí, pero en cualquier caso, nginx -s reloadno aplicará una configuración sintácticamente incorrecta sino que informará de error.
ruvim
¿Cuál es el valor máximo que admite Nginx para esta directiva? No hay nada en los documentos. Apache admite 2 GB como máximo .
Dan Dascalescu
@DanDascalescu, el valor máximo depende del off_ttamaño de letra (ver ngx_http_core_module.h). En el caso de un ejecutable de off_t64 bits , el tamaño es de 64 bits y el valor máximo debe ser 2 ^ 63 bytes.
ruvim
19

La respuesta de Pooja Mane funcionó para mí, pero tuve que poner la variable client_max_body_size dentro de la sección http .

ingrese la descripción de la imagen aquí

Aleksei Mialkin
fuente
1
me encanta cuando la gente pone un fragmento de código, eres un héroe
Charden Daxicen
14

Puede aumentar el tamaño del cuerpo en el archivo de configuración nginx como

sudo nano /etc/nginx/nginx.conf

client_max_body_size 100M;

Reinicie nginx para aplicar los cambios.

reinicio de nginx del servicio sudo

Pooja Mane
fuente
10
¿Por qué 100M? ¿Por qué no 100G? Su respuesta mejoraría si agregara una justificación.
Hassan Baig
10
Sí, 42M sería mejor.
Evgeni Nabokov
2
configurarlo para unlimit 0
morteza Moradi