Pastebin
vcl 4.1; import std; import asn; import mmdb; sub vcl_init { new geodb_ASN = mmdb.init("/etc/varnish/mmdb/GeoLite2-ASN_20260312/GeoLite2-ASN.mmdb"); } sub vcl_backend_response { ### HYDROLIX LOGGING std.log("origin_ip: " + bereq.backend); # Client IP std.log("client_ip: " + "-"); # Edge / Varnish server info std.log("edge_ip: " + "-"); std.log("client_asn: "+ "-"); std.log("client_city: "+ "-"); } sub vcl_deliver { ### HYDROLIX LOGGING # Client IP std.log("client_ip: " + client.ip); # Edge / Varnish server info std.log("edge_ip: " + server.ip); std.log("client_asn: "+ geodb_ASN.lookup(client.ip, "autonomous_system_number")); if(geodb_ASN.lookup(client.ip, "city/names/en") == "") { std.log("client_city: " + "EMPTY"); } #std.log("client_city: "+ geodb.lookup(client.ip, "city/names/en")); # Edge POP (optional, if you have it in a header or config) if (req.http.X-Edge-POP) { std.log("edge_pop: " + req.http.X-Edge-POP); } }