Menampilkan Client IP Apache Menggunakan Varnish

Varnish-logo

Ketika kita menggunakan varnish seperti pada tutorial ini dan ini, maka client ip pada access_log Apache menjadi berasal dari 127.0.0.1. Hal ini dikarenakan Apache menerima log dari varnish yang berada di server yang sama dengan server apache. Untuk memunculkan client ip seperti sediakala, kita perlu mengubah config varnish dan apache.

How to

Buka /etc/varnish/default.vcl dan tambahkan menjadi seperti berikut

sub vcl_recv {
  unset req.http.X-Forwarded-For;
  set req.http.X-Forwarded-For = client.ip;
}

Pada virtualhost apache, tambahkan 2 baris berikut

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" varnishcombined
CustomLog /var/log/httpd/access_log varnishcombined

Restart varnish dan Apache

systemctl restart varnish
systemctl restart httpd

[1] [2]

Leave A Comment