Discourse est livré avec 3 limites de débit globales différentes qui peuvent être configurées par les administrateurs du site.
Limites de débit globales par adresse IP
Ces limites s’appliquent à chaque adresse IP unique qui atteint l’application Discourse. (les fichiers servis directement depuis le système de fichiers ou le CDN sont exclus)
Par défaut, cette limite de débit est activée, vous pouvez la désactiver ou la définir en mode de signalement.
DISCOURSE_MAX_REQS_PER_IP_MODE : valeur par défaut block, cette limite de débit s’applique dès l’installation. (les autres options sont warn, warn+block, et none)
DISCOURSE_MAX_REQS_PER_IP_PER_MINUTE : nombre de requêtes par adresse IP par minute (la valeur par défaut est 200)
DISCOURSE_MAX_REQS_PER_IP_PER_10_SECONDS : nombre de requêtes par adresse IP par 10 secondes (la valeur par défaut est 50)
DISCOURSE_MAX_ASSET_REQS_PER_IP_PER_10_SECONDS : nombre de requêtes d’actifs (avatars/css) par adresse IP par 10 secondes (la valeur par défaut est 200)
DISCOURSE_MAX_REQS_RATE_LIMIT_ON_PRIVATE : la limite de débit doit-elle s’appliquer aux adresses IP privées accédant à Discourse ? La valeur par défaut est fausse.
DISCOURSE_SKIP_PER_IP_RATE_LIMIT_TRUST_LEVEL : utiliser les limites de débit par utilisateur plutôt que les limites de débit par adresse IP pour les utilisateurs ayant ce niveau de confiance ou plus (la valeur par défaut est 1)
DISCOURSE_MAX_REQS_PER_IP_EXCEPTIONS : une liste séparée par des espaces d’adresses IP ou de blocs CIDR à exempter de la limitation de débit par adresse IP. Par exemple : 14.15.16.32/27 216.148.1.2
Limites de débit de l’API utilisateur
Les applications mobiles acquièrent une clé d’API utilisateur par appareil pour accéder à Discourse au nom d’un utilisateur (en utilisant un protocole ouvert). Ces clés d’API sont très strictement limitées.
DISCOURSE_MAX_USER_API_REQS_PER_MINUTE : valeur par défaut 20
DISCOURSE_MAX_USER_API_REQS_PER_DAY : valeur par défaut 2880
Limites de débit de l’API Administrateur
Les clés d’API administratives peuvent être générées via la page votsite.com/admin/api/keys. Ces clés peuvent opérer au nom des utilisateurs, mais nécessitent des privilèges administratifs pour être générées. Il y a une limite de 60 requêtes par minute, partagée entre toutes les clés.
Les utilisateurs auto-hébergés peuvent modifier cela dans leur fichier app.yml. Les clients hébergés devront contacter leur fournisseur d’hébergement.
DISCOURSE_MAX_ADMIN_API_REQS_PER_MINUTE : 60
Limites de débit de l’API du plugin Data Explorer
DISCOURSE_MAX_DATA_EXPLORER_API_REQ_MODE : valeur par défaut warn, cette limite de débit s’applique dès l’installation. (les autres options sont block, warn+block, et none)
DISCOURSE_MAX_DATA_EXPLORER_API_REQS_PER_10_SECONDS : 2
Note : Les requêtes effectuées via l’interface utilisateur de Data Explorer ne sont pas comptabilisées dans la limite de débit.
Que dois-je faire si j’atteins une limite de débit et que je suis ralenti ?
Si vous consommez l’API par programme et recevez en retour une réponse de limitation de statut 429, vous devez la respecter et ralentir.
En tant qu’utilisateur final, vous ne devriez normalement pas subir de limites de débit ; si c’est le cas, ralentissez. Vous pourriez la déclencher en ouvrant 50 onglets rapidement ou en faisant quelque chose de similaire.
Avertissement sur le pare-feu et le proxy ! 
Si vous utilisez un proxy inverse mal configuré, Discourse pourrait penser que toutes les requêtes proviennent d’une seule adresse IP, il est donc très probable que vous atteigniez les limites de débit rapidement. Assurez-vous de configurer votre proxy inverse pour transférer correctement l’adresse IP.
Comment puis-je modifier ces limites ?
Pour modifier les limites, ajoutez le changement souhaité dans votre fichier app.yml dans la section env.
Si vous êtes hébergé par Discourse, et sur un plan Enterprise, contactez team@discourse.org si vous avez besoin d’ajuster l’une de ces limites.
Les limites de débit globales ne sont pas ajustables sur les plans starter, pro ou business.