Problema Erro 429 com proxy reverso

Hi, My Discourse is run with reverse proxy (NPM)

the discourse don’t it does not support the x-forwarded field and therefore shows me all the time the ip address of my reverse proxy when we look for example from which ip the user is registering etc …

I sniff the request on discourse and the X-forwarder is present but in access.log the IP view is the reverse proxy

I view on interne il necessary to change the configuration template or de configuration file nginx for Discourse (not nginx on NPM)

do you help me for this ? because the discourse activate de tempalte web.ratelimite and send most error 429

:frowning:
Thank you for you help

See How to set up Discourse on a server with existing Apache sites - sysadmin - Discourse Meta for an example of how to conduits) configure the internal nginx for your reverse proxy ip.

1 curtida

Eu também estou com dificuldades com isso.

Tenho um servidor Debian com Apache 2.4 vHosts e um desses vHosts é o contêiner Docker do Discourse. No Apache, o mod_remoteip está ativado (não havia mod_extract_forwarded), mas sem nenhuma opção de configuração. A configuração do vHost é bem simples:

RequestHeader set X-Forwarded-Proto "https"
ProxyPreserveHost On
ProxyRequests Off
ProxyPass /.well-known !
ProxyPass / http://localhost:8083/
ProxyPassReverse / http://localhost:8083/

8083 é a porta http exposta do contêiner Docker do Discourse.

É basicamente isso.

Vejo os diferentes visitantes (por IP) nas estatísticas criadas com o Apache access.log e, mais importante, também vejo diferentes últimos IPs para os usuários (esta foi uma verificação simples para mim). Portanto, parece que os endereços IP dos visitantes estão sendo expostos através do proxy Apache para o Discourse. Isso já acontecia sem o mod_remoteip ativado, que eu só ativei há alguns dias.

De qualquer forma, estou tendo problemas novamente agora. Algum crawler ou ataque DoS está rodando em nosso servidor com um IPv4 de Cracóvia, Polônia. Ele está gerando muitos erros 429. Isso é aceitável para mim, mas todos os outros visitantes também recebem esses erros.

É também o caso? Então, quando o limite de conexão é atingido, todos recebem um erro? Ou por IP?

Está faltando algo na minha configuração ou posso melhorá-la/ajustá-la? Tivemos problemas com o Claudebot algumas semanas e também alguns dias atrás, então talvez o limite precise ser aumentado um pouco.

Obrigado e saudações,
Roi

Você adicionou as coisas para ver que o endereço IP remoto chega ao discourse ou todos os usuários parecem vir do proxy?

Procure por x-forwarded-for

Ehm… :see_no_evil: Esqueci a parte do Nginx (Discourse). :see_no_evil: Obrigado! :slight_smile:

Eu apenas editei o app.yml e executei um rebuild no container. O bot voltou quase instantaneamente após o container subir novamente. Ainda não vejo nenhum erro 429. Espero que continue assim para usuários “normais”.

Essa é a questão… Quando verifico a página de administração dos usuários, sempre vi entradas diferentes de “último IP”. Então, de alguma forma, o Discourse viu os IPs reais dos usuários, mesmo sem o mod_remoteip e também sem a alteração da configuração do Nginx. :man_shrugging:

De qualquer forma, estou curioso para ver se a alteração da configuração do Nginx trouxe a solução para este problema! :slight_smile:

1 curtida