yo @Falco, o real_ip (fornecido pelo cf como cabeçalho CF-Connecting-IP) está chegando para você nos logs do nginx? não está para mim. eu só vejo o ip do cloudflared.
eu acho que uma ou ambas as coisas precisam ser feitas (vou acompanhar após a investigação):
- adicionar uma linha de configuração
set_real_ip_fromao nginx para o ip docloudflared. se esse for o problema, então eu acho que nenhuma das outras linhasset_real_ip_from(fornecidas portemplates/cloudflare.template.yml) são necessárias para usuários do argotunnel. e neste caso, talvez um template separado do argotunnel deva ser adicionado ao repositório docker que puxa o seu ip docloudflaredde uma variável de ambiente ou algo assim no seuapp.ymlprincipal. corrigir oconfirmado desnecessáriolog_format. eu acho que isso provavelmente não é o problema, embora.
edit:
aqui está o que estou fazendo para fazer funcionar:
não use o template do cloudflare. não tem sentido.
em vez disso, mescle isso no seu app.yml:
hooks:
after_web_config:
- file:
path: /etc/nginx/conf.d/cloudflare_tunnel_real_ip.conf
contents: |
# restaurar ips originais do visitante (ngx_http_realip_module)
set_real_ip_from 10.100.20.200/32; # seu range de ip do cloudflared/argotunnel
real_ip_header CF-Connecting-IP;
isso automaticamente acaba no contexto http do nginx, o que é apropriado.
ps: na minha opinião, para limpeza, o template do cloudflare também deveria gerar sua configuração nginx em um arquivo separado em vez de usar sed -i para adicioná-la a /etc/nginx/conf.d/discourse.conf.