Como revelar IPs reais usando CloudFlare

Uso o Cloudflare para meu fórum por vários motivos, mas quero obter o IP real dos meus visitantes para ter dados precisos sobre quantas pessoas estão cadastradas com aquele endereço IP e para que recursos como banimento por IP funcionem corretamente.
Existe alguma maneira de fazer isso?

Você precisa adicionar cloudflare.template.yml à seção de templates do seu arquivo app.yml.

Na verdade, agora quando tento acessar meu site, o servidor web está fora do ar?

Qual é o erro? Qual é o conteúdo dos arquivos de log?

Se eu visitar o fórum, ele apenas retorna um Erro 521 Servidor Web indisponível.
Isso é o que estava no arquivo de log atual:

2021-08-11 12:14:46.898 UTC [556] LOG:  iniciando PostgreSQL 13.3 (Debian 13.3-1.pgdg100+1) em x86_64-pc-linux-gnu, compilado por gcc (Debian 8.3.0-6) 8.3.0, 64-bit
2021-08-11 12:14:46.899 UTC [556] LOG:  ouvindo no endereço IPv4 "0.0.0.0", porta 5432
2021-08-11 12:14:46.899 UTC [556] LOG:  ouvindo no endereço IPv6 "::", porta 5432
2021-08-11 12:14:46.996 UTC [556] LOG:  ouvindo no socket Unix "/var/run/postgresql/.s.PGSQL.5432"
2021-08-11 12:14:47.112 UTC [577] LOG:  o sistema de banco de dados foi interrompido; último estado conhecido ativo em 2021-08-10 14:46:03 UTC
2021-08-11 12:14:47.852 UTC [577] LOG:  o sistema de banco de dados não foi desligado corretamente; recuperação automática em andamento
2021-08-11 12:14:47.902 UTC [577] LOG:  redo começa em 0/3DFE308
2021-08-11 12:14:47.905 UTC [577] LOG:  registro inválido no comprimento em 0/3E0A2D8: esperado 24, obtido 0
2021-08-11 12:14:47.905 UTC [577] LOG:  redo concluído em 0/3E0A2B0
2021-08-11 12:14:48.332 UTC [556] LOG:  o sistema de banco de dados está pronto para aceitar conexões
2021-08-11 15:09:07.632 UTC [556] LOG:  recebida solicitação de desligamento inteligente
2021-08-11 15:09:08.970 UTC [556] LOG:  worker em segundo plano "iniciador de replicação lógica" (PID 585) saiu com código de saída 1
2021-08-11 15:09:08.973 UTC [580] LOG:  desligando
2021-08-11 15:09:09.018 UTC [556] LOG:  o sistema de banco de dados foi desligado
2021-08-11 15:14:54.109 UTC [564] LOG:  iniciando PostgreSQL 13.3 (Debian 13.3-1.pgdg100+1) em x86_64-pc-linux-gnu, compilado por gcc (Debian 8.3.0-6) 8.3.0, 64-bit
2021-08-11 15:14:54.110 UTC [564] LOG:  ouvindo no endereço IPv4 "0.0.0.0", porta 5432
2021-08-11 15:14:54.110 UTC [564] LOG:  ouvindo no endereço IPv6 "::", porta 5432
2021-08-11 15:14:54.132 UTC [564] LOG:  ouvindo no socket Unix "/var/run/postgresql/.s.PGSQL.5432"
2021-08-11 15:14:54.136 UTC [576] LOG:  o sistema de banco de dados foi desligado em 2021-08-11 15:14:20 UTC
2021-08-11 15:14:54.147 UTC [564] LOG:  o sistema de banco de dados está pronto para aceitar conexões
2021-08-11 15:48:11.435 UTC [564] LOG:  recebida solicitação de desligamento inteligente
2021-08-11 15:48:12.349 UTC [564] LOG:  worker em segundo plano "iniciador de replicação lógica" (PID 582) saiu com código de saída 1
2021-08-11 15:48:12.349 UTC [577] LOG:  desligando
2021-08-11 15:48:12.397 UTC [564] LOG:  o sistema de banco de dados foi desligado
2021-08-11 15:48:17.233 UTC [555] LOG:  iniciando PostgreSQL 13.3 (Debian 13.3-1.pgdg100+1) em x86_64-pc-linux-gnu, compilado por gcc (Debian 8.3.0-6) 8.3.0, 64-bit
2021-08-11 15:48:17.233 UTC [555] LOG:  ouvindo no endereço IPv4 "0.0.0.0", porta 5432
2021-08-11 15:48:17.233 UTC [555] LOG:  ouvindo no endereço IPv6 "::", porta 5432
2021-08-11 15:48:17.245 UTC [555] LOG:  ouvindo no socket Unix "/var/run/postgresql/.s.PGSQL.5432"
2021-08-11 15:48:17.255 UTC [570] LOG:  o sistema de banco de dados foi desligado em 2021-08-11 15:48:12 UTC
2021-08-11 15:48:17.271 UTC [555] LOG:  o sistema de banco de dados está pronto para aceitar conexões
2021-08-11 18:24:06.544 UTC [555] LOG:  recebida solicitação de desligamento inteligente
2021-08-11 18:24:11.892 UTC [555] LOG:  worker em segundo plano "iniciador de replicação lógica" (PID 576) saiu com código de saída 1
2021-08-11 18:24:11.895 UTC [571] LOG:  desligando
2021-08-11 18:24:11.936 UTC [555] LOG:  o sistema de banco de dados foi desligado
2021-08-11 18:59:31.940 UTC [554] LOG:  iniciando PostgreSQL 13.3 (Debian 13.3-1.pgdg100+1) em x86_64-pc-linux-gnu, compilado por gcc (Debian 8.3.0-6) 8.3.0, 64-bit
2021-08-11 18:59:31.940 UTC [554] LOG:  ouvindo no endereço IPv4 "0.0.0.0", porta 5432
2021-08-11 18:59:31.940 UTC [554] LOG:  ouvindo no endereço IPv6 "::", porta 5432
2021-08-11 18:59:31.964 UTC [554] LOG:  ouvindo no socket Unix "/var/run/postgresql/.s.PGSQL.5432"
2021-08-11 18:59:31.977 UTC [570] LOG:  o sistema de banco de dados foi desligado em 2021-08-11 18:24:11 UTC
2021-08-11 18:59:32.004 UTC [554] LOG:  o sistema de banco de dados está pronto para aceitar conexões

Este é o log do banco de dados. Você pode verificar os logs em /var/discourse/shared/standalone/log/var-log/nginx/error.log?

error.zip (123,2 KB)
O arquivo error.log está neste arquivo zip. É basicamente a mesma coisa. (Não posso postar o arquivo .log porque não é suportado, e o conteúdo do error.log é uma quantidade enorme de texto).

Parece que o modelo do Cloudflare está quebrado no momento. A última atualização foi em 2016. Por favor, remova-o e reconstrua-o. Vou dar uma olhada para corrigi-lo, se o tempo permitir.

Tudo bem, obrigado pela ajuda!

Estou enfrentando o mesmo problema, feliz por haver uma solução aqui :slight_smile:

O estranho é que parece estar afetando apenas as reconstruções feitas hoje. Outros servidores (mesma versão do Discourse - Stable 2.7.7) estão funcionando normalmente.

Embora tenha começado a receber alguns erros estranhos recentemente em alguns fóruns (não após uma atualização):

Ops

O software que impulsiona este fórum de discussões encontrou um problema inesperado. Pedimos desculpas pelo inconveniente.

Informações detalhadas sobre o erro foram registradas e uma notificação automática foi gerada. Vamos dar uma olhada nisso.

Nenhuma ação adicional é necessária. No entanto, se a condição de erro persistir, você pode fornecer detalhes adicionais, incluindo etapas para reproduzir o erro, publicando um tópico de discussão na categoria de feedback do site.

Não tenho certeza se está relacionado; o erro foi o motivo pelo qual eu estava fazendo reconstruções recentemente na mesma versão.

Edição: Confirmado, remover o modelo do Cloudflare corrigiu o erro 521.

Atualização: Parece que @Zenexer criou um PR para isso: Cloudflare template broken again

Se eu comentar a linha do modelo do Cloudflare em app.yml, como isso afetará meu [site] (https://howtodiscuss.com)? Estamos usando o Cloudflare em nosso site.

Além disso, meu problema é o mesmo? https://meta.discourse.org/t/discourse-updated-from-admin-not-working-after-rebuild-fatal-error-site-does-not-load-anymore-after-rebuild/200443

@markersocial meu site está rodando no Cloudflare; se eu remover essa linha, o que acontecerá com meu site?

Pelo que sei, os usuários terão seus registros de IP de registro e IPs usados recentemente registrados como IPs do Cloudflare em vez de seus IPs reais. Assim, se você banir alguém, os IPs do Cloudflare serão adicionados ao seu log de banimentos, o que não é bom, certo.

Acredito que isso signifique que os usuários não poderão fazer login ou se registrar se, por acaso, receberem um dos IPs do Cloudflare banidos (enquanto o template não estiver sendo usado). Usuários já logados, acredito, não serão afetados. No passado (provavelmente ainda hoje, não tenho certeza), isso poderia impedir até mesmo administradores e moderadores de fazer login em uma nova sessão.

Pode ser uma boa decisão desativar os registros públicos e não usar banimento por IP até que o template esteja disponível.

Ok, obrigado. Você realmente acha que meu problema é o mesmo que esse bug do modelo do Cloudflare? Por favor, veja o link do meu tópico na minha última postagem e confirme para mim.

Qual comando de log devo usar para diagnosticar o mesmo bug?

E como você teve certeza de que seu bug de receber 502 também foi causado pelo mesmo erro do CF?

Isso foi corrigido em Cloudflare template broken again - #3 by Zenexer. Por favor, tente usá-lo novamente.