429 muitas solicitações

Olá a todos, sei que já existem tópicos sobre “muitas solicitações”, mas este parece não se encaixar 100% no perfil.

Estou recebendo erros 429 intermitentes no Discourse (e tudo está bastante lento em geral) com o seguinte rastreamento:

Error: Too Many Requests
    at s (https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:9:9188)
    at a (https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:9:9045)
    at o (https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:9:8936)
    at Object.trigger (https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:18:7223)
    at https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:18:9212
    at t.invoke (https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:9729)
    at e.t.flush (https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:8732)
    at e.t.flush (https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:10782)
    at e.n._end (https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:15440)
    at e.n.end (https://discourse.looker.com/assets/ember_jquery-d430881a3fb1403871256e5a02423c4b20a78793685e92088613ca9a701baf88.js:16:12110)

Sempre é esse link .js, que é um bloco de JS bastante impressionante e que não significa muito para mim. A instância que executa o Discourse parece estar sob carga mínima — 10% de CPU, tudo o mais parece bastante normal, então é um pouco confuso para mim estar recebendo erros 429.

Existem configurações que posso ajustar em algum lugar para alterar o limite de taxa global? A instância consegue lidar com muito mais carga do que o Discourse parece achar, ou estou perdendo algo maior causado por um plugin ou bug.

Obrigado!

Seu site está atrás de um proxy reverso ou de qualquer outra coisa que possa interferir nos endereços IP reais de entrada?

Não, não acredito que sim (e os logs normalmente capturam endereços IP), mas ele fica atrás de um ELB. Definitivamente, houve uma correlação com um aumento significativo no tráfego (parece um pouco com um ataque DDoS ou algo assim)

Mas, se meu entendimento sobre limitação de taxa estiver correto, isso não deveria ter afetado todos os usuários — apenas o usuário que tentou visitar um milhão de vezes, certo?

Vou verificar em relação à arquitetura da rede. Obrigado!

Acredito que o nginx dentro do contêiner do Discourse esteja usando o IP do ELB para o bucket de limitação de taxa, em vez do IP original do cliente.

Isso parece bastante plausível. Acabei de verificar que temos uma configuração de ELB na AWS sem nada de particularmente especial — será que é resultado de alguma configuração errada da minha parte?

Não tenho 100% de certeza sobre os próximos passos. Se você puder me indicar o caminho certo, provavelmente conseguirei trabalhar com minha equipe de operações para resolver isso. Muito obrigado!