Varnish loadbalancer met Nginx nodes + orignial IP in logs

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Mexxus
  • Registratie: Januari 2004
  • Laatst online: 20-09 17:01
Hi all,

Ik heb een hosting omgeving met 3 Nginx nodes (webservers) met daarboven een loadbalancer op vasis van Varnish die middels round-robbin de load verdeeld over de 3 webservers. Dit verkeer gaat over interne IP's:

- Varnish: 192.168.1.30
- Nginx: 192.168.1.11 / 12 / 13

Probleem is nu echter dat ik in de Nginx logs telkens en alleen maar het interne IP-adres van de Varnish server zie. Hoe kan ik er nu voor zorgen dat het originele IP-adres van de client door Varnish wordt doorgegeven en in de Nginx logs verschijnt?

Momenteel heb ik dit stuk code al in m'n Varnish configuratie staan:

code:
1
2
3
4
5
6
7
# Set client IP
if (req.http.x-forwarded-for) {
      set req.http.X-Forwarded-For =
      req.http.X-Forwarded-For + ", " + client.ip;
} else {
      set req.http.X-Forwarded-For = client.ip;
}

Acties:
  • +1 Henk 'm!

  • JMW761
  • Registratie: Oktober 2001
  • Laatst online: 11:34
het klopt dat je het IP van je varnish in de logs van je nginx ziet; immers, het is een proxy, dus dat is ook de machine welke connect.

Je moet even in je logsettings je remote IP vervangen door het X-forwarded-for IP en je bent er.
Dus in je nginx.conf

Acties:
  • 0 Henk 'm!

  • Mexxus
  • Registratie: Januari 2004
  • Laatst online: 20-09 17:01
JMW761 schreef op maandag 12 oktober 2015 @ 20:53:
het klopt dat je het IP van je varnish in de logs van je nginx ziet; immers, het is een proxy, dus dat is ook de machine welke connect.

Je moet even in je logsettings je remote IP vervangen door het X-forwarded-for IP en je bent er.
Dus in je nginx.conf
Dank je! Het is gelukt door deze 2 regels code toe te voegen aan de nginx.conf:

code:
1
2
set_real_ip_from 192.168.1.30;
real_ip_header X-Forwarded-For;