【问题标题】:Varnish 4 VCL type conversions?Varnish 4 VCL 类型转换?
【发布时间】:2015-04-26 19:22:11
【问题描述】:

我正在使用带有 geoip vmod 的 Varnish4,并且我正在尝试使用 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);

问题会消失,但这似乎不是一个干净的实现。

有没有办法将client.ip 作为字符串而不是IP 类型返回,这不涉及设置另一个变量,或者这是正确的方法吗?

作为说明,我不想使用 req.http.X-Forwarded-For,因为我正在测试我是否使用 client.ip 获得可预测的结果。

【问题讨论】:

    标签: varnish varnish-vcl


    【解决方案1】:

    原来,你可以只用一个空白字符串连接来返回一个字符串。

    set req.http.X-Country-Code = geoip.country_code("" + client.ip);
    

    【讨论】:

      猜你喜欢
      • 2017-09-21
      • 2017-01-18
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      • 2012-09-05
      • 2017-09-07
      • 2016-08-28
      • 1970-01-01
      相关资源
      最近更新 更多