Varnish 4 VCL 类型转换?
Varnish 4 VCL type conversions?
我将 Varnish4 与 geoip vmod 一起使用,我正在尝试将 client.ip
用作字符串。
geoip.country_code(client.ip);
执行此操作时,出现错误 Wrong argument type. Expected STRING. Got IP.
如果我真的想要,我可以做类似
的事情
set req.http.X-Client-IP = client.ip;
geoip.country_code(req.http.X-Client-IP);
问题会消失,但这似乎不是一个干净的实现。
有没有办法将 return client.ip
作为字符串而不是 IP
类型,它不涉及设置另一个变量,或者这是正确的方法吗?
请注意,我不想使用 req.http.X-Forwarded-For
因为我正在测试是否使用它与 client.ip
.
相比我得到了可预测的结果
事实证明,您只需将空白字符串连接到 return 字符串即可。
set req.http.X-Country-Code = geoip.country_code("" + client.ip);
我将 Varnish4 与 geoip vmod 一起使用,我正在尝试将 client.ip
用作字符串。
geoip.country_code(client.ip);
执行此操作时,出现错误 Wrong argument type. Expected STRING. Got IP.
如果我真的想要,我可以做类似
的事情set req.http.X-Client-IP = client.ip;
geoip.country_code(req.http.X-Client-IP);
问题会消失,但这似乎不是一个干净的实现。
有没有办法将 return client.ip
作为字符串而不是 IP
类型,它不涉及设置另一个变量,或者这是正确的方法吗?
请注意,我不想使用 req.http.X-Forwarded-For
因为我正在测试是否使用它与 client.ip
.
事实证明,您只需将空白字符串连接到 return 字符串即可。
set req.http.X-Country-Code = geoip.country_code("" + client.ip);