Symptôme
Après avoir configuré Anti-DDoS Pro ou Anti-DDoS Premium pour votre service, l’envoi d’un fichier volumineux via HTTP ou HTTPS échoue et affiche l’erreur suivante :
413 Request Entity Too Large
The requested resource does not allow request data with the requested method
or the amount of data provided in the request exceeds the capacity limit.
Le code d’état HTTP 413 Request Entity Too Large indique que le corps de la requête dépasse la limite de taille autorisée par le serveur ou par un proxy intermédiaire.
Cause
La cause dépend de la taille du fichier envoyé :
Fichier supérieur à 2 Go : Anti-DDoS Pro et Anti-DDoS Premium reposent sur l’architecture Tengine et fonctionnent comme des services de proxy inverse. La taille des fichiers envoyés est limitée à 2 Go.
Fichier inférieur à 2 Go : Le serveur d’origine (le service backend situé derrière Anti-DDoS Proxy) limite la taille d’envoi. Cette limitation provient généralement de la configuration du serveur web, telle que la directive Nginx
client_max_body_size.
Limites de taille d’envoi par produit
| Produit | Taille d’envoi maximale |
|---|---|
| Anti-DDoS Pro ou Anti-DDoS Premium | 2 Go |
| Web Application Firewall (WAF) | 2 Go |
| Server Load Balancer (SLB) | 50 Go |
Solution
Déterminez la taille du fichier à envoyer, puis appliquez la solution appropriée.
Fichier supérieur à 2 Go
Si votre fichier dépasse la limite d’envoi de 2 Go, utilisez l’une des solutions de contournement suivantes :
Compressez le fichier avant l’envoi : compressez-le pour qu’il fasse moins de 2 Go, puis envoyez le fichier compressé.
-
Envoyez le fichier vers Object Storage Service (OSS) : transférez-le directement vers OSS, en contournant entièrement Anti-DDoS Proxy. Pour plus d’informations, consultez la rubrique Upload objects.
La taille maximale d’un objet envoyé varie selon l’opération API OSS. Les opérations PutObject et PostObject prennent en charge une taille maximale de 5 Go par objet. L’API d’envoi multipartie offre une taille maximale pratiquement illimitée, ce qui signifie qu’il n’existe aucune contrainte pratique pour les fichiers volumineux.
Effectuez l’envoi via une adresse non protégée par Anti-DDoS Proxy : contournez Anti-DDoS Pro ou Anti-DDoS Premium en envoyant le fichier via une adresse de serveur d’origine qui n’est pas routée par le service Anti-DDoS Proxy.
Fichier inférieur à 2 Go
Si votre fichier fait moins de 2 Go mais que l’envoi échoue toujours avec une erreur 413, le serveur d’origine rejette la requête. Vérifiez et ajustez la limite de taille d’envoi sur votre serveur web backend.
L’exemple suivant utilise Nginx :
-
Ouvrez le fichier de configuration
nginx.confet ajoutez ou modifiez la directive suivante :client_max_body_size [$Num]Définissez
[$Num]sur une valeur supérieure à la taille du fichier à envoyer. Cette valeur définit la taille maximale autorisée du corps de la requête pour Nginx. -
Vérifiez que la syntaxe du fichier de configuration est correcte :
nginx -t -
Rechargez Nginx pour appliquer la modification :
nginx -s reload
S’applique à
Anti-DDoS (Anti-DDoS Pro et Anti-DDoS Premium)