4 votes

nginx - client_max_body_size n'a aucun effet avec ssl configuré

Quand j'ai mis client_max_body_size 30m; sans ssl tout fonctionne (les fichiers jusqu'à 30MB sont acceptés). Cependant, lorsque je passe en mode ssl, cette directive est complètement ignorée.

Ma configuration ressemble à (/etx/nginx/conf.d/my-sites.com.conf) :

server {
  listen 443 ssl;
  server_name my-sites.com;
  ssl_certificate /etc/nginx/ssl/my-sites.com/uni_my-sites.com.crt;
  ssl_certificate_key /etc/nginx/ssl/my-sites.com/my-sites.com.key;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

  client_max_body_size 30m;

  location / {
    proxy_pass http://my-backend.com;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}

J'ai trouvé plusieurs suggestions ici nginx - client_max_body_size n'a aucun effet mais rien n'a fonctionné. J'ai essayé d'utiliser différentes versions de nginx, j'ai défini client_max_body_size pour tous les blocs : http, serveur, emplacement mais rien ne fonctionne.

J'ai également cherché si c'était un bug de nginx sans résultat.

Existe-t-il une solution pour surmonter ce problème ou suis-je obligé d'utiliser une connexion non-ssl ? Toute suggestion est la bienvenue.

Ma configuration est la suivante :

  • AWS EC2 nano instance
  • Nginx dans docker (dernière version stable - 1.10.1)
  • Un seul hôte virtuel sur une seule adresse IP

Différence par rapport à cette question nginx - client_max_body_size n'a aucun effet cette question est liée au ssl

Edit : J'ai créé un problème dans le wiki de nginx. https://trac.nginx.org/nginx/ticket/1076#ticket

0voto

kuceram Points 422

J'ai enfin trouvé la cause de ce problème. Nginx fonctionne correctement, mais j'ai acheminé les demandes vers AWS Elastic Beanstalk qui utilise nginx en interne pour acheminer les demandes vers le conteneur Docker.

La mauvaise configuration était donc du côté d'AWS Elastic Beanstalk. La configuration de l'AWS a réglé le problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X