Categories
Docker

Nginx proxy – 413 Request Entity Too Large in Docker

413 Request Entity Too Large ese era el mensaje que leía nada más subir un archivo a través de un endPoint que había creado.

He estado trabajando sin problemas hasta que tuve que subir un archivo de más de 2MB, bueno me dije le digo a nginx de mi proyecto el tamaño máximo que va a admitir, entonces procedí a modificar la configuración para agregar el parámetro  client_max_body_size
Mi archivo de configuración que uso con nginx (default.conf) quedo así.

server {
    client_max_body_size 100M;
    ...
    ...
}

Reinicio los servicios pero nada sigue el mismo error, se me hacia muy raro dado que le decía a nginx la cantidad de máxima que admite, empieza a buscar otra solución en internet pero nada el error persistía.

Hasta que mi compañero me dijo que donde deberíamos de realizar el cambio era en el nginx-proxy de jwilder, para una prueba rápida él había editado directamente el contenedor pero claro si el contenedor se paraba y se volvía a levantar el servicio, la configuración se perdería.

Así que me puse a investigar y vi como hacerlo.

El primer paso es crear el archivo client_max_body_size.conf y dentro escribir esta configuración

client_max_body_size 10m;

Le vamos a indicar que el archivo pesará como máximo 10MB

Ahora bien agregamos dicho archivo a nuestro docker-compose.yml

version: "3"
services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    restart: always
    ports:
      - "80:80"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - ./client_max_body_size.conf:/etc/nginx/conf.d/client_max_body_size.conf:ro
 
networks:
  default:
    external:
      name: nginx-proxy

Una vez tenemos la nueva configuración agregada vamos a proceder a detener el servicio.

Y como último paso volvemos a levantar el servicio.

docker-compose up -d

Con esto ya tenía resuelto el problema, me imagino que cada uno tiene una configuración diferente pero si usan nginx proxy de jwilder les puede ayudar a resolver este error que me tuvo mucho tiempo hasta que pude resolverlo.

Referencia: https://ubublog.com/nginx-proxy-413-request-entity-too-large/