Esta línea es necesaria para que funcione.
Sin ella, todas las solicitudes siguen mostrando la IP del balanceador de carga.
Lo sé porque mi Discourse estuvo caído debido a errores 429.
Por si no está claro, esta es mi infraestructura:
usuario > haproxy > discourse
Por supuesto, Discourse incluye un proxy inverso nginx.
Incluí los encabezados de reenvío en haproxy, pero el nginx interno de Discourse no respetaba el campo ‘forwarded for’. Tuve que agregar las 2 líneas en mi publicación original y reiniciar el contenedor para que funcionara.
¿Estás utilizando una configuración de dos contenedores?
No creo que exista una variable de entorno integrada para las direcciones IP del equilibrador de carga personalizado, ya que nginx no lee esas variables de forma nativa para el bloque server.
Además, si editaste manualmente la configuración de nginx dentro del contenedor en ejecución, se borrará la próxima vez que reconstruyas.
Creo que, para que sea permanente y sobreviva a las reconstrucciones, necesitas usar el comando replace en tu archivo app.yml (o web_only.yml si es de dos contenedores). Desplázate hasta el final de tu archivo .yml hasta la sección run: y agrega este bloque. Esto le indica al constructor de Discourse que inyecte automáticamente tus configuraciones de IP real después de que se abra el bloque server {:
run:
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: /server.+{/
to: |
server {
set_real_ip_from 192.168.1.100; ## Reemplaza con tu IP/subred real del equilibrador de carga
real_ip_header X-Forwarded-For;
real_ip_recursive on;