Je déplace une instance Discourse existante de son emplacement actuel vers une VM AWS EC2.
Le site est derrière des équilibreurs de charge Amazon. J’ai déjà modifié avec succès app.yml avec les directives set_real_ip_from appropriées pour que NGINX connaisse les adresses IP de l’équilibreur de charge. Je sais que cela fonctionne car je peux voir mon IP réelle lorsque je vérifie la dernière IP de mon utilisateur.
Cependant, lorsque j’essaie de téléverser la sauvegarde de 375 Mo du ancien serveur, le nouveau site commence à émettre des erreurs 429 lorsque le fichier est chargé à environ 35 % et que le processus de téléversement échoue. Les en-têtes des réponses 429 identifient “discourse-rate-limit-error-code: id_10_secs_limit”.
J’ai trouvé cela surprenant. J’avais la fenêtre des outils de développement de mon navigateur ouverte dans l’onglet “Network” et j’ai vu de nombreux petits morceaux être téléversés (je pense qu’ils étaient de 5 Mo) assez rapidement. J’ai une connexion Internet rapide de 200 Mbps, donc peut-être est-ce simplement trop rapide pour les paramètres par défaut du limiteur de débit ? Ou peut-être que l’on s’attendait à ce que les tâches d’administration soient généralement effectuées à partir d’un réseau privé (ce qui n’est pas possible avec ma configuration AWS) ?
Mais attendez, il y a plus ! J’ai essayé de désactiver le limiteur de débit en commentant la ligne “templates/web.ratelimited.template.yml” de app.yml et en reconstruisant l’application, mais cela n’a pas fonctionné. J’ai toujours eu des erreurs 429 lorsque mon fichier était chargé à environ 35 %.
J’ai donc rapidement ajouté les variables d’environnement ci-dessous au fichier app.yml, j’ai reconstruit et j’ai finalement pu téléverser la sauvegarde à restaurer.
DISCOURSE_MAX_REQS_PER_IP_MODE: none
DISCOURSE_MAX_REQS_PER_IP_PER_10_SECONDS: 1000
Je crois qu’il s’agit de paramètres du limiteur de débit, il était donc étrange de voir quelque chose répondre à ces paramètres alors que le limiteur de débit était soi-disant désactivé.
En résumé, j’aimerais des conseils sur :
- Le limiteur de débit devrait-il bloquer les téléversements de sauvegarde comme celui-ci ?
- Pourquoi le limiteur de débit n’a-t-il pas été désactivé lorsque j’ai commenté cette ligne et reconstruit l’application ?
Merci !