nginx sigue diciendo client intended to send too large body
. Google y RTM me señalaron client_max_body_size
. Me puse a 200m
en el nginx.conf
, así como en el vhost conf
Nginx, reiniciar un par de veces, pero todavía estoy recibiendo el mensaje de error.
¿Pasé por alto algo? El backend es php-fpm
( max_post_size
y max_upload_file_size
se configuran en consecuencia).
client_max_body_size
en lahttp
sección tiene el efecto esperado con nginx versión 1.14.1Respuestas:
Siguiendo la documentación de nginx , puede establecer client_max_body_size 20m (o cualquier valor que necesite) en el siguiente contexto:
fuente
http
o lalocation
configuración. Funciona cuando se establece enserver
nivel. nginx / 1.4.4Finalmente, las cargas grandes de NGINX funcionan con éxito en sitios alojados de WordPress (según las sugerencias de nembleton y rjha94)
Pensé que podría ser útil para alguien, si añadía un poco de aclaración a sus sugerencias. Para empezar, asegúrese de haber incluido su directiva de aumento de carga en los TRES bloques de definición separados (servidor, ubicación y http). Cada uno debe tener una entrada de línea separada. Al resultado le gustará algo como esto (donde el ... refleja otras líneas en el bloque de definición):
(en mi configuración de ISPconfig 3, este bloque está en el archivo /etc/nginx/nginx.conf)
(en mi configuración de ISPconfig 3, estos bloques están en el archivo /etc/nginx/conf.d/default.conf)
Además, asegúrese de que el archivo php.ini de su servidor sea coherente con esta configuración de NGINX. En mi caso, cambié la configuración en la sección File_Uploads de php.ini para leer:
Nota: si está administrando una configuración de ISPconfig 3 (mi configuración es en CentOS 6.3, según The Perfect Server ), deberá administrar estas entradas en varios archivos separados. Si su configuración es similar a la de la configuración paso a paso, los archivos conf de NGINX que necesita modificar se encuentran aquí:
Mi archivo php.ini se encuentra aquí:
Continué pasando por alto el bloque http {} en el archivo nginx.conf. Aparentemente, pasar por alto esto tuvo el efecto de limitar la carga al límite predeterminado de 1M. Después de realizar los cambios asociados, también querrá asegurarse de reiniciar sus servicios NGINX y PHP FastCGI Process Manager (PHP-FPM). En la configuración anterior, uso los siguientes comandos:
fuente
/etc/init.d/nginx reload
en su lugar. Esto ha agregado beneficios como 'si la configuración es incorrecta', NginX no dejará de funcionar.nginx -t
(prueba la sintaxis del archivo de configuración) y luegonginx -s reload
(hace la recarga real) en su lugar.A partir de marzo de 2016 , me encontré con este problema tratando de PUBLICAR json a través de https (desde solicitudes de Python, no es que importe).
El truco es poner "client_max_body_size 200M;" en al menos dos lugares
http {}
yserver {}
:1. el
http
directorio/etc/nginx/nginx.conf
2. el
server
directorio en su vhost./etc/nginx/sites-available/mysite.com
, para aquellos que no tienen vhosts, probablemente sea su nginx.conf o en el mismo directorio que él.3. el
location /
directorio en el mismo lugar que 2./
, pero si no funciona, recomendaría aplicar esto/
y luego, una vez que funcione, sea más específico.Recuerde : si tiene SSL, eso requerirá que configure lo anterior para SSL
server
ylocation
también, donde sea que sea (idealmente lo mismo que 2. ). Descubrí que si su cliente intenta cargar en http y espera que obtenga 301 a https, nginx realmente cortará la conexión antes de la redirección debido a que el archivo es demasiado grande para el servidor http, por lo que debe ser en tanto .Los comentarios recientes sugieren que hay un problema con esto en SSL con las nuevas versiones de nginx, pero estoy en 1.4.6 y todo está bien :)
fuente
client_max_body_size
se cumple en la secciónhttp
sin necesidad de agregarlo en ningún otro lugar.Debe aplicar los siguientes cambios:
Actualice
php.ini
(Encuentre el archivo ini correctophpinfo();
) y aumentepost_max_size
yupload_max_filesize
al tamaño que desee:Actualización de Nginx configuración de su sitio web y añadir
client_max_body_size
valor en sulocation
,http
oserver
contexto.Reinicie NginX y PHP-FPM:
NOTA: En algún momento (en mi caso, casi siempre) debe matar el
php-fpm
proceso si no se actualizó correctamente mediante el comando de servicio. Para hacerlo, puede obtener la lista de procesos (ps -elf | grep php-fpm
) y matar uno por uno (kill -9 12345
) o usar el siguiente comando para hacerlo por usted:fuente
Vea si está configurando la directiva client_max_body_size dentro del bloque http {} y no dentro del bloque de ubicación {}. Lo configuré dentro del bloque http {} y funciona
fuente
Alguien me corrige si esto es malo, pero me gusta bloquear todo lo más posible, y si solo tiene un objetivo para las cargas (como suele ser el caso), entonces solo dirija sus cambios a ese archivo. Esto funciona para mí en el paquete Ubuntu nginx-extras mainline 1.7+:
fuente
Tuve un problema similar recientemente y descubrí que
client_max_body_size 0;
puede resolver ese problema. Esto establecerá client_max_body_size en ningún límite. Pero la mejor práctica es mejorar su código, por lo que no hay necesidad de aumentar este límite.fuente
Suponiendo que ya ha configurado client_max_body_size y varias configuraciones de PHP (upload_max_filesize / post_max_size, etc.) en las otras respuestas, reinicie o vuelva a cargar NGINX y PHP sin ningún resultado, ejecute esto ...
nginx -T
Esto le dará cualquier error no resuelto en sus configuraciones de NGINX. En mi caso, luché con el error 413 durante todo un día antes de darme cuenta de que había otros errores SSL no resueltos en la configuración de NGINX (ruta incorrecta para los certificados) que debían corregirse. ¡Una vez que solucioné los problemas no resueltos que recibí de 'nginx -T', volví a cargar NGINX y EUREKA! Eso lo arregló.
fuente
Estoy configurando un servidor de desarrollo para jugar que refleja nuestro obsoleto en vivo, utilicé The Perfect Server - Ubuntu 14.04 (nginx, BIND, MySQL, PHP, Postfix, Dovecot e ISPConfig 3)
Después de experimentar el mismo problema, me encontré con esta publicación y nada funcionaba. Cambié el valor en cada archivo recomendado (nginx.conf, ispconfig.vhost, / sites-available / default, etc.)
Finalmente, cambiar
client_max_body_size
en my/etc/nginx/sites-available/apps.vhost
y reiniciar nginx es lo que funcionó. Esperemos que ayude a alguien más.fuente
Me encuentro con el mismo problema, pero no encontré nada que ver con nginx. Estoy usando nodejs como servidor de fondo, uso nginx como proxy inverso, el servidor de nodo activa el código 413. uso del nodo koa analizar el cuerpo. koa limita la longitud codificada en urlen.
establecer formLimit en más grande puede resolver este problema.
fuente
Tenía el mismo problema que la
client_max_body_size
directiva fue ignorada.Mi error tonto fue que puse un archivo dentro
/etc/nginx/conf.d
que no terminó con.conf
. Nginx no cargará estos por defecto.fuente
Si está utilizando la versión de Windows nginx, puede intentar eliminar todo el proceso nginx y reiniciarlo para ver. Encontré el mismo problema en mi entorno, pero lo resolví con esta solución.
fuente
tasklist /fi "imagename eq nginx.exe"