【发布时间】:2014-02-19 08:59:51
【问题描述】:
根据请求 uri,我想使用 mysql 数据库中的数据将带有清漆的请求转发到不同的服务器。该数据库包含 2 个字段:name 和 base_url。如果请求转到 /forwards/%name% 我想将请求转发到由 base_url 定义的服务器/后端。我的第一次尝试是使用 VRT_SetHdr 设置现有后端,但这不起作用:
VRT_SetHdr(sp, HDR_REQ, "\010backend:", my_backend, vrt_magic_string_end);
也许可以设置一个像X-backend这样的header,然后用普通的VCL进行选择?
我还想使用来自 mysql 的相同数据在运行时定义后端。这可能吗?
【问题讨论】:
-
另一种解决方案可能是从数据库数据中生成 VCL 文件并使用 varnishadm 重新加载它。出于性能原因,这可能是一个更好的解决方案。
-
嗯,似乎有一个功能请求:varnish-software.com/blog/…
标签: c varnish varnish-vcl