Je reçois un statut 411 de nginx lorsque j'essaie de faire un PUT sans spécifier la longueur du contenu. Existe-t-il un moyen de désactiver cela?
Vous pouvez essayer d'ajouter ceci à votre requête:
curl -i -X PUT -H 'Content-Length: 0' ' http://www.example.com/test '
Essayez d'installer le HttpChunkinModule ou de mettre à jour Nginx vers 1.3.9+
Ce module n'est plus nécessaire pour Nginx 1.3.9+ car depuis la version 1.3.9, le noyau Nginx a déjà un support intégré pour les corps de requête fragmentés.
Les demandes PUT nécessitent Content-Length. Ce n'est pas Nginx, c'est HTTP qui fait cette exigence. Les requêtes PUT, comme les requêtes POST, ont nécessairement un corps de contenu. Ce corps peut être de longueur nulle, mais si c'est le cas, vous devez le dire explicitement. Évidemment, vous ne pouvez pas supposer que le contenu continue jusqu'à ce que la connexion soit fermée (c'est ce qu'implique un en-tête de longueur de contenu absent), car le serveur doit être en mesure de répondre à la demande avant la fermeture de la connexion.
Question ancienne, mais depuis que je suis tombé sur cela à partir d'une recherche sur le Web:
NginX 1.3.9 et supérieur prend en charge "Transfer-Encoding: chunked" hors de la boîte pour POST et PUT.
Avec le transfert par blocs, vous pouvez envoyer des fichiers sans définir d'abord la longueur du contenu.
la source