429 trop de requêtes, c'est bon ou pas ? (aidez-moi)

bonjour

j’utilise UptimeRobot et quelques fois par semaine, je reçois des erreurs 429 pendant 1 à 5 minutes, mais c’est ce que je vois dans les journaux.

Cause racine
HTTP 429 - Trop de requêtes
Début de l’incident
2026-08-23 10:42:58
Résolu à
2026-08-23 10:48:05
Durée
5 minutes et 7 secondes

je suis en auto-hébergement et Discourse est derrière un proxy inverse via HestiaCP

log.txt|pièce jointe (55,8 Ko) voici le journal

j’aimerais savoir si cette erreur 429 concernait tous les utilisateurs ou seulement quelques-uns ?

je suis sur une installation standard en Docker avec seulement le port 80 et 4 workers.

8 Go de RAM et 8 cœurs

mise à jour : j’ai fait un test sur mon PC en ouvrant 20/30 posts jusqu’à obtenir un 429, et sur mon téléphone avec un réseau différent, ça a fonctionné normalement. cela confirme que le 429 touche un seul client et non tous les visiteurs ?

Si je ne me trompe pas, oui, cela ne concerne que le client qui envoie la rafale de requêtes.

devrais-je ignorer cela ou devrais-je modifier quelque chose pour augmenter la limite ?

Si vous souhaitez ajuster les seuils, reportez-vous à :

Cela signifie probablement que toutes les requêtes semblent provenir de la même adresse IP et que de nombreux utilisateurs reçoivent des erreurs 429. Rendez-vous dans admin/users et vérifiez l’adresse IP que vous voyez pour vous-même et pour un autre utilisateur. Si elles sont identiques, vous devez configurer les choses de manière à ce que l’IP réelle parvienne à Discourse.

je viens de vérifier et j’ai la même IP interne que les autres utilisateurs ! :frowning:

comment puis-je corriger ça ?

Est-ce que tu passes par Cloudflare ?

Je traverse aussi cette épreuve dans ce jeu :slight_smile:

oui, mais le problème est que tous les utilisateurs ont la même ip..

j’ai ajouté ceci à app.yml et je teste en ce moment

run:

  • replace:
    filename: /etc/nginx/conf.d/discourse.conf
    from: “server {”
    to: |
    server {
    set_real_ip_from 192.168.1.250;
    real_ip_header X-Forwarded-For;
    real_ip_recursive on;
  • exec: echo “Beginning of custom commands”
  • exec: echo “End of custom commands”

j’ai testé à l’instant depuis le bureau et le téléphone mobile

j’obtiens les bonnes adresses ip :smiley:

Si vous utilisez Cloudflare, c’est le modèle Cloudflare qu’il vous faut. Il semble impossible de trouver le sujet de référence à ce sujet, alors essayez peut-être https://ask.discourse.com/ — j’ai réussi à obtenir un message généré par IA expliquant quoi faire, mais pas où trouver la discussion à ce sujet. Ça me rend triste que l’IA trouve la solution, mais pas la recherche. :crying_cat:

bon… oui, j’ai demandé à ChatGPT, j’ai fait une sauvegarde avant et j’ai fait un test. Pour l’instant, ça va :smiley:

Je utiliserais toujours https://ask.discourse.com/ plutôt qu’une IA générique (sauf si vous êtes en train de coder et que l’IA a accès au code source de Discourse).

S’agirait-il de cette partie ?

  1. Pour Cloudflare, ajoutez cloudflare.template.yml à votre fichier app.yml.

Ceci est une alternative à la solution que j’ai trouvée ci-dessus ?

Si vous utilisez Cloudflare avec Discourse, vous devriez l’ajouter. Je pense que c’était le modèle mentionné par @pfaffman ?

Je pense que cela dépend de votre configuration.

J’ai

             ┌─────────────────────────┐
             │       Cloudflare        │
             │ WAF / CDN / DDoS / SSL  │
             └────────────┬────────────┘
                          │
                   IP client réelle
                          │
                          ▼
             ┌─────────────────────────┐
             │   CentminMod Nginx      │
             │                         │
             │ cloudflare.conf         │
             │ restaure l'IP réelle    │
             └────────────┬────────────┘
                          │
                   X-Forwarded-For
                   = IP client réelle
                          │
                          ▼
             ┌─────────────────────────┐
             │    Discourse Docker     │
             │                         │
             │ proxy de confiance      │
             │ 172.16.0.0/12           │
             └─────────────────────────┘

Si j’utilise le modèle, l’IP revient à l’IP Docker au lieu de celle exposée. Je fais le transfert dans Nginx.