基于主机的动态Varnish ACL匹配

问题描述

我有一个用于处理大量主机的清漆缓存,其中一些主机需要由ACL保护,该ACL特定于每台主机,有些主机根本没有ACL。

此刻我的VCL看起来像这样:

acl foo_acl {
  "1.1.1.1";
}
acl bar_acl {
  "1.1.1.2";
}

sub vcl_recv {
  if (req.http.host == "foo.com" && ! (client.ip ~ foo_acl)) || (req.http.host == "bar.com" && ! (client.ip ~ bar_acl)) {
      error 403 "Forbidden";
  }

  # Rest of request
}

这适用于几个主机,但是随着数量增加,它变得非常麻烦。

我正在寻找一种方法来对此进行干燥,也许是根据主机名查找了正确的ACL?而不是必须明确定义条件中的每个条件?

我也愿意接受其他建议。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)