¿Cómo aumentar el tamaño de carga de archivos en Nginx?

Publicado 13 de octubre de 2024

Problema: Limitaciones de tamaño de carga de archivos en Nginx

Nginx, un servidor web, tiene límites predeterminados de tamaño de carga de archivos que pueden impedir la transferencia de archivos grandes. Este límite puede causar problemas al subir documentos grandes, archivos multimedia o conjuntos de datos a través de aplicaciones web en servidores Nginx.

Localización del archivo de configuración de Nginx

Ubicaciones comunes del archivo de configuración de Nginx

El archivo de configuración de Nginx suele estar en una de estas ubicaciones:

  • /etc/nginx/nginx.conf
  • /usr/local/nginx/conf/nginx.conf

Estas son las rutas estándar para el archivo de configuración principal de Nginx. La ubicación exacta puede variar según cómo se instaló Nginx y su sistema operativo.

Consejo: Verificar el gestor de paquetes

Si instaló Nginx usando un gestor de paquetes como apt o yum, a menudo puede encontrar la ubicación del archivo de configuración verificando la información del paquete. Por ejemplo, en sistemas Ubuntu o Debian, puede usar:

dpkg -L nginx | grep nginx.conf

Este comando lista todos los archivos instalados por el paquete Nginx y filtra el archivo nginx.conf.

Solución de problemas de archivos de configuración faltantes

Si no puede encontrar el archivo de configuración de Nginx en los lugares esperados, pruebe estos pasos:

  1. Verificar la instalación de Nginx: Ejecute nginx -v para verificar si Nginx está instalado y ver su versión.

  2. Usar herramientas de línea de comandos para buscar archivos de configuración:

    • Buscar nginx.conf:
      sudo find / -name nginx.conf
    • Buscar cualquier archivo con "nginx" en su nombre:
      sudo find / -name "*nginx*"

Si estos pasos no le ayudan a encontrar el archivo de configuración, es posible que Nginx no esté instalado en su sistema o que esté en una ubicación no estándar.

Modificación de la configuración de Nginx para aumentar el tamaño de carga

Edición del archivo de configuración de Nginx

Para aumentar el límite de tamaño de carga de archivos en Nginx, debe editar el archivo de configuración de Nginx:

  1. Abra el archivo de configuración con un editor de texto:

    sudo nano /etc/nginx/nginx.conf

    Use la ruta correcta si su archivo de configuración está en una ubicación diferente.

  2. Encuentre la sección para hacer cambios. Puede colocar la directiva client_max_body_size en el contexto http, server o location. A menudo está en el bloque server.

Ajuste del parámetro client_max_body_size

Para cambiar el tamaño máximo permitido del cuerpo de la solicitud del cliente:

  1. Agregue o modifique la directiva client_max_body_size:

    client_max_body_size 100M;

    Esto establece el tamaño máximo de carga en 100 megabytes. Cambie este valor según sea necesario.

  2. Si la directiva existe, cambie el valor. Si no, agregue la línea a la sección correcta de su archivo de configuración.

  3. Use M para megabytes o G para gigabytes. No use MB o GB ya que estos no funcionarán.

  4. Puede establecer diferentes límites para diferentes ubicaciones:

    location /upload {
       client_max_body_size 500M;
    }

    Esto establece un límite de 500MB para la ubicación /upload.

  5. Guarde los cambios y salga del editor de texto.

Pruebe su configuración y recargue Nginx después de hacer estos cambios. Asegúrese de que su configuración de PHP (si es aplicable) coincida con su nuevo límite de tamaño de carga de Nginx.

Consejo: Verificar la configuración de carga de PHP

Si está usando PHP con Nginx, recuerde también ajustar la configuración de carga de PHP. Edite su archivo php.ini y modifique estos valores:

upload_max_filesize = 100M
post_max_size = 100M

Reemplace 100M con el límite deseado. Reinicie PHP-FPM después de hacer estos cambios.

Prueba y aplicación de la nueva configuración

Verificación de la sintaxis de la configuración de Nginx

Después de cambiar el archivo de configuración de Nginx, verifique si hay errores de sintaxis antes de aplicar los cambios. Use este comando para verificar la configuración:

sudo nginx -t

Este comando prueba los archivos de configuración de Nginx e informa de errores. Si la prueba pasa, verá un mensaje indicando que la prueba de configuración fue exitosa y la sintaxis está bien.

Si hay errores, el comando mostrará detalles sobre el problema y su ubicación en el archivo de configuración. Corrija estos errores antes de continuar.

Consejo: Hacer una copia de seguridad de su configuración

Antes de hacer cambios en su configuración de Nginx, cree una copia de seguridad de su archivo de configuración actual. Esto le permite revertir rápidamente los cambios si es necesario:

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup

Recarga o reinicio de Nginx

Una vez que haya confirmado que la sintaxis de la configuración es correcta, aplique la nueva configuración. Hay dos métodos principales:

  1. Recargar Nginx: Este método no interrumpe las conexiones activas. Use este comando:

    sudo nginx -s reload

    O, si está usando systemd:

    sudo systemctl reload nginx
  2. Reiniciar Nginx: Si una recarga no aplica todos los cambios, es posible que necesite reiniciar Nginx. Esto interrumpirá todas las conexiones activas:

    sudo systemctl restart nginx

Después de recargar o reiniciar Nginx, el nuevo límite de tamaño de carga de archivos debería estar activo. Pruebe su función de carga de archivos para confirmar que ahora se pueden cargar archivos más grandes.

Monitoree el rendimiento de su servidor después de aumentar el límite de tamaño de carga, ya que manejar cargas de archivos más grandes puede requerir más recursos del servidor.