yo @Falco, ¿la real_ip (proporcionada por cf como encabezado CF-Connecting-IP) te llega en los logs de nginx? a mí no. solo veo la IP de cloudflared.
creo que hay que hacer una o ambas de estas cosas (haré seguimiento después de investigar):
- añadir una línea de configuración
set_real_ip_froma nginx para la IP decloudflared. si ese resulta ser el problema, entonces supongo que ninguna de las otras líneasset_real_ip_from(proporcionadas portemplates/cloudflare.template.yml) son necesarias para los usuarios de argotunnel. y en este caso, tal vez se debería añadir una plantilla separada de argotunnel al repositorio de docker que obtenga tu IP decloudflaredde una variable de entorno o algo en tuapp.ymlprincipal. corregir elconfirmado que no es necesariolog_format. creo que esto probablemente no sea el problema, sin embargo.
editar:
esto es lo que estoy haciendo para que funcione:
no uses la plantilla de cloudflare. no tiene sentido.
en su lugar, fusiona esto en tu app.yml:
hooks:
after_web_config:
- file:
path: /etc/nginx/conf.d/cloudflare_tunnel_real_ip.conf
contents: |
# restaurar IPs originales de visitantes (ngx_http_realip_module)
set_real_ip_from 10.100.20.200/32; # tu rango de IP de cloudflared/argotunnel
real_ip_header CF-Connecting-IP;
eso termina automáticamente en el contexto http de nginx, por cierto, lo cual es apropiado.
pd: en mi opinión, para mayor limpieza, la plantilla de cloudflare también debería generar su configuración de nginx en un archivo separado en lugar de usar sed -i para añadirla a /etc/nginx/conf.d/discourse.conf.