Varnish 是否可以从一个端口提供服务并将请求克隆到另一个端口?

Varnish 是否可以从一个端口提供服务并将请求克隆到另一个端口?

我在当前部署中遇到了一个问题需要解决。当前部署如下。

Varnish 在 80 端口,Nginx 在 8000 端口,uWSGI 支持

这里的问题是,客户希望实现一些业务逻辑所需的内部分析,这些分析使用 uWSGI 提供的 Python 实现。大多数 varnish 命中都没有被统计(命中是匿名的)。提出了两个解决方案。

  1. 从客户端访问非缓存服务器(这里的客户端是 Android 设备。每个请求两个请求在电池使用方面非常昂贵
  2. 将 varnish 上的请求代理或克隆到另一台服务器,以便分析服务器可以接收该请求。可能使用 UDP。

第二种解决方案相关吗? 有可能做到这一点吗? 如果可以,那么该怎么做?

答案1

vmod_curl

可以向外部端点发送额外请求。我建议您通过Varnish 的vmod_curl一个模块来执行此操作。cURL

https://github.com/varnish/libvmod-curl了解更多信息。

但是,对每个传入请求发送额外的调用可能会对您的分析系统造成很大的负担。您使用 Varnish 的原因可能是为了避免您的原始系统过载。

Varnish 的日志和统计工具

当谈到分析时,Varnish 提供的工具是首屈一指的。

以下是有关 Varnish 日志和统计工具的一些参考:

日志记录(varnishlogvarnishtop& varnishncsa)工具基于 VSL,因此这里有一些 VSL 参考:

最后,这里是对所使用的计数器的引用varnishstathttp://varnish-cache.org/docs/6.0/reference/varnish-counters.html

相关内容