Ese commit corrigió un error de configuración en el que te estabas apoyando, pero también es posible que hubiera permitido que cualquier usuario final falsificara su dirección IP estableciendo ese encabezado.
En realidad, hay una forma más sencilla que no requiere el uso de un socket: acabo de escribir una guía sobre cómo hacerlo.
Para tu configuración @CLOUD_PHT, deberías añadir esto a la definición de tu contenedor (si ya existe una sección run, añade estas directivas a ella; de lo contrario, añade la sección run):
run:
- file:
path: /etc/nginx/conf.d/outlets/server/real-ip-header.conf
chmod: 644
contents: |
real_ip_header x-forwarded-for;
- file:
path: /etc/nginx/conf.d/outlets/server/set-real-ip-from-host.conf
chmod: 644
contents: |
set_real_ip_from 172.17.0.1;
También puede que necesites lo siguiente:
- file:
# necesitamos activar el modo recursivo ya que tendremos al menos dos entradas: una del host y otra de CloudFlare
path: /etc/nginx/conf.d/outlets/server/real-ip-recursive.conf
chmod: 644
contents: |
real_ip_recursive on;
dependiendo de si el nginx que se ejecuta en tu servidor procesa él mismo el encabezado de Cloudflare para determinar la IP real del usuario final (esto se sugiere) o simplemente añade el suyo propio encima. Consulta https://meta.discourse.org/t/handling-the-chain-of-trust-of-the-end-users-real-ip/406372#p-2001772-more-than-one-proxy-7 para más detalles.
Otros lectores: tened en cuenta que esta directiva
run:
- file:
path: /etc/nginx/conf.d/outlets/server/set-real-ip-from-host.conf
chmod: 644
contents: |
set_real_ip_from 172.17.0.1;
no es apropiada para todas las configuraciones. Solo haced esto si todas las conexiones al contenedor de Discourse desde esta IP son de confianza.
Específicamente, un problema conocido con las configuraciones IPv6 es que las conexiones IPv6 al servidor se reenvían por Docker a través de IPv4: la forma en que se hace hace que todas las conexiones parezcan provenir de la dirección IP docker0 del host. Si aplicáis la directiva anterior a vuestra configuración, permitiréis que todos los usuarios que se conecten a través de IPv6 falsifiquen su dirección IP a su antojo.