Subiendo un PDF de 1MB me sale « la subida es demasiado grande, el máximo es 4MB »

Recibo el mensaje de error « la carga es demasiado grande, el tamaño máximo es 4 MB » al cargar archivos PDF de menos de 4 MB.
Aquí están mis pruebas:

  • un PDF de 68 KB funciona correctamente como se esperaba.
  • un JPG de 2.3M funciona correctamente como se esperaba.
  • un pdf (2.3 MB) de 2.3M ¡desencadena el error!
  • un JPG de 3.6MB funciona correctamente como se esperaba.

Extrañamente, la carga se realiza correctamente en meta.discourse.org, tal vez hayan cambiado algunas configuraciones.

No he modificado ninguna configuración que contenga max.

Estoy usando la versión 2.9.0.beta9 4af080d20b, en una instancia autoalojada en https://discuss.afpy.org.

No hay problema con este archivo en mis foros, en los que no cambié el límite de tamaño de archivo.

1 me gusta

Ejecutándolo en mi sitio de prueba (4b561277a9) sin cambios en ninguna configuración max ni límites de archivo, y se sube bien si añado pdf a las extensiones autorizadas, y da el mensaje de error correcto de ‘Lo siento, el archivo que intentas subir no está autorizado’ cuando se restablece a los valores predeterminados.

¿Hay algo más que pueda intentar para ver si puedo replicarlo?

No, ya que el tamaño de ese archivo está por debajo del límite de tamaño predeterminado de nginx. Sin embargo, esa es una buena pista.

El sitio que @Julien_Palard autoalojó tiene un proxy inverso personalizado entre Discourse y el navegador, por lo que ese error probablemente proviene de un proxy inverso mal configurado.

5 Me gusta

¿Tienes un proxy inverso delante de tu Discourse? ¿Cómo lo instalaste?

Estoy usando nginx, mi configuración es la siguiente:

Así que mi configuración de nginx es:

      server
      {
          listen [::]:80; listen 80;
          server_name {{ discourse_domain }};
          access_log /var/log/nginx/{{ discourse_domain }}-access.log;
          error_log /var/log/nginx/{{ discourse_domain }}-error.log;
          return 301 https://$host$request_uri;
      }
      server
      {
          listen [::]:443 ssl; listen 443 ssl;
          server_name {{ discourse_domain }};
          access_log /var/log/nginx/{{ discourse_domain }}-access.log;
          error_log /var/log/nginx/{{ discourse_domain }}-error.log;
          include snippets/letsencrypt-{{ discourse_domain }}.conf;
          location / {
              proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:;
              proxy_set_header Host $http_host;
              proxy_http_version 1.1;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto https;
              proxy_set_header X-Real-IP $remote_addr;
          }
      }

Es un nginx 1.18.0-6.1+deb11u2 de Debian bullseye.

Estoy recibiendo un 413 Request Entity Too Large de nginx, así que claramente tengo que investigar más para entender por qué una imagen “grande” está bien pero un PDF “no tan grande” no lo está…

El JPG de 3.0MB tiene una Content-Length de 557215, ¡así que 0.5MB sorprendentemente!
El PDF de 2.3MB tiene una Content-Length de 2460137, así que 2.3MB sin sorpresa.

¿Discourse reescala el jpg antes de subirlo?

En mis JPEGs que pasan veo que el ancho y alto de la imagen son diferentes después de subirlos a Discourse (Probé con https://apod.nasa.gov/apod/image/2209/DSCF4968_PS_Lioce.jpg, es una imagen de 5703x3892, 3.6MB, pero una vez subida es de 1920×1310 de 153 KB).

1 me gusta

El valor predeterminado de nginx para client_max_body_size es 1MB, las imágenes jpeg redimensionadas del lado del cliente están todas por debajo de 1MB, todo queda claro.

Arreglé mi configuración de nginx: Set client_max_body_size to 4m to match Discourse configuration. · AFPy/infra@861af29 · GitHub

Y ahora funciona. Tenías razón: era mi proxy inverso.

¡Gracias a todos :heart: y perdón por el ruido!

4 Me gusta

No quiero añadir incorrectamente la etiqueta unsupported-install, pero supongo que este tema debería haberla tenido desde el principio, ¿verdad?

Bueno, hay temas para explicar cómo configurar un proxy inverso, así que esto es algo con lo que normalmente ayudamos.

1 me gusta

Angry Season 4 GIF by The Office

¡SÍ! E incluso tenemos una entrada de blog sobre esta función súper increíble

7 Me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.