Si utiliza Nginx en su servidor web, es posible que haya encontrado el error 413 Request Entity Too Large al intentar subir archivos grandes. Este error suele ocurrir cuando se supera el límite predeterminado de client_max_body_size de Nginx, que es de 1 MB. Por ejemplo, es probable que vea este error al intentar subir un PDF de 10 MB o un video de 50 MB. Afortunadamente, la solución es bastante sencilla: solo necesita configurar el ajuste correspondiente.
Comprenda el origen del error
Nginx controla el tamaño del cuerpo de las solicitudes entrantes. Si este tamaño supera el valor de client_max_body_size, Nginx devuelve directamente un error 413. Este ajuste puede definirse en el archivo de configuración principal de Nginx, nginx.conf, dentro de un bloque server específico o en un bloque location. Dependiendo del nivel en el que esté definido, deberá modificar el ajuste correspondiente.
Cambie el ajuste client_max_body_size
Como primer paso, abra el archivo de configuración de Nginx. Generalmente se encuentra en /etc/nginx/nginx.conf o /etc/nginx/sites-available/default. Una vez abierto el archivo con un editor de texto, busque una línea similar a esta:
client_max_body_size 1M;Si no existe dicha línea, debe agregarla. Por ejemplo, si desea permitir la subida de archivos de hasta 100 MB, modifique la línea de la siguiente manera:
client_max_body_size 100M;Configuración dentro de un bloque server
Si desea cambiar el ajuste solo para un sitio específico, agregue la misma línea dentro del bloque server correspondiente. Por ejemplo:
server { listen 80; server_name hosting.example.com; client_max_body_size 100M; ... }Configuración dentro de un bloque location
Para ser aún más específico, puede establecer límites diferentes para rutas URL concretas. Por ejemplo, para permitir 200 MB en el directorio /uploads:
location /uploads { client_max_body_size 200M; }Pruebe y reinicie Nginx
Después de realizar cambios en el archivo de configuración, verifique que no haya errores de sintaxis:
sudo nginx -tSi la prueba es exitosa, reinicie Nginx:
sudo systemctl restart nginxAhora puede intentar subir archivos nuevamente.
Compatibilidad con PHP-FPM
Si ejecuta una aplicación que utiliza PHP, recuerde que PHP también tiene sus propios límites de subida. Verifique los ajustes upload_max_filesize y post_max_size en el archivo php.ini. Generalmente es una buena práctica establecer los mismos valores. Por ejemplo:
upload_max_filesize = 100M post_max_size = 100MNo olvide reiniciar PHP-FPM después de realizar los cambios.
Comprobaciones finales y consejos
En algunos casos, si utiliza un proxy inverso o una CDN, estos también pueden tener límites similares. Además, aumentar el ajuste client_body_buffer_size puede ser beneficioso para el rendimiento. Pero tenga en cuenta que valores muy altos pueden sobrecargar los recursos del servidor. Generalmente, valores entre 10 MB y 100 MB serán suficientes. Después de realizar estos ajustes, no debería volver a ver el error 413.