问题标签 [varnish-4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
64 浏览

caching - Varnish:防止对象被从缓存中逐出

是否可以在清漆缓存中标记对象,如果缓存已满,它们不会被从缓存中逐出?我们服务器上的一些请求需要很长时间才能呈现,并导致一个小的 xml 响应。该资源不经常被调用,我们希望确保它保留在缓存中。当缓存中的空间用完时,清漆开始删除旧的且不经常调用的对象。我们希望为缓存对象分配优先级并影响从缓存中删除对象的算法。那可能吗?如果是,如何?

0 投票
2 回答
2800 浏览

varnish - 清漆,是什么导致了传球?

这是清漆日志(已编辑 - 扩展以提供更多信息):

我读过这是在设置 set-cookie 标头或设置缓存控制:max-age=0 时创建的。

好吧,我在我的子 vcl_backend_response 中有这个,试图避免通过命中。这很粗鲁,但我不知道后端是什么导致了这个成功:

我正在摆脱 Expire,因为它被设置为时间戳 0。所以我认为可能是这样。然后我尝试使用 Cache-control 但还是一样。我即将以这种速度取消所有标题...

毕竟是304响应,为什么不缓存呢?

更多信息:后端是 Drupal 应用程序。

编辑 1:关于 vcl_recv

是的,我确实有东西,我正在返回某些路径的通行证(不是我正在检查的路径),我正在取消设置文件的 cookie,并且我正在取消设置其余部分不是 drupal 会话的所有 cookie。它是mroe或更少的复制/粘贴drupal默认子vcl_recv。如果你愿意,我可以在这里复制。

顺便说一句,我改变了其他东西,现在我在响应 200 中也被击中通过(但是当我使用基准工具时)。有人删除了可能是因为响应 304 的答案。我正在检查,但答案不见了:(

好的,这里是 vcl_recv:

它几乎总是在所有 http. 304 个响应和 200 个响应。我已经编辑了上面的 varnishlog 以显示一个完整的示例以提供更多信息。

编辑:所以这是在显示成功通过之前的请求日志。肯定是把命中设定为传球的罪魁祸首:

0 投票
1 回答
361 浏览

wordpress - Varnish 4.0.1、Apache、Centos 7、Plesk 12、带有 w3 总缓存的 Wordpress - Varnish 不缓存 html

前几天我在我的网站上设置了清漆,但我认为它不能正常工作,因为年龄显示为 0:

静态内容完美运行:

这就是 isvarnishworking.com 对此的看法:

这是我的 .htaccess 的副本(使用 w3 总缓存制作):

我可以看到静态文件和 html 之间唯一不同的是 html 页面正在发送 cookie,所以我尝试修改我的 default.vcl 以取消设置 cookie,如下所示:

我现在对此完全感到困惑,所以任何帮助将不胜感激

0 投票
2 回答
1206 浏览

caching - 是否可以根据 Varnish 中后端响应的大小来防止缓存?

我们正在缓存一个有问题的 IIS 服务器,该服务器有时只发送空响应(0 字节)而不是正确的响应。缓存这些响应将是一场灾难,我们无法解决问题,因为它不是我们的服务器。相反,如果它们为空(0 字节),我想指示 Varnish 不要缓存来自后端的响应。

阅读 VCL 参考(https://www.varnish-cache.org/docs/4.0/reference/vcl.html)我看不到任何明显的解决方法。

可以做到吗?

0 投票
0 回答
620 浏览

magento2 - magento2 的 varnish-4.1.2 配置

我正在尝试为 magento2 CE 配置 varnish-4.1.2。我将下载的 varnish 4 配置文件替换为我的 default.vcl 。/etc/default/varnish并且/etc/varnish/default.vcl配置如下。

/etc/默认/清漆

/etc/varnish/default.vcl/

但我收到错误

错误:来自 VCC 编译器的消息:在 ('/etc/varnish/default.vcl' 第 19 行 Pos 32) 处未终止的字符串返回 (synth(400, "X-Magento-Tags-Pattern header -------- -----------------------########################### ####

运行 VCC-compiler 失败,退出 2 VCL 编译失败

我该如何解决这个问题?

0 投票
1 回答
856 浏览

caching - Varnish 4:高缓存命中但高后端流量

当运行 Varnish 4.0.3 并查看 varnishstat 时,它报告的缓存命中率约为 0.9 - 0.95,我将其解释为 90-95% 的缓存命中率(不正确?)。我的点击次数非常少,所以我看不到有很多不可缓存的流量。困扰我的部分是,尽管如此,后端服务器仍在工作。当我查看 iftop 时,我看到服务器(它没有运行任何其他应用程序)正在以大约 19Mbit 的速度传输(包括对客户端的响应和到后端服务器的请求标头)并从后端服务器接收大约 14Mbit 的数据。

我可以补充一点,我的缓存中也有一个小的宽限期,我看到每秒大约 1-2 个请求被计为命中,但仍然向后端发出请求,但这是一个微不足道的请求数量。

我一定遗漏了一些应该很明显的东西。但是什么?

编辑:

*由于消息限制,不得不从日志中删除一些(平淡无奇的部分)。

在此,我通过 client_req - (cache_hit + cache_hitpass + cache_miss) = 436880 计算了“其他不可缓存的请求”。这与未缓存的 cache_hitpass 和缓存未命中(或只是 client_req-cache-hit)一起使总数达到 586699,或约 18.7%。如果他们是繁重的请求,我想这可能会导致流量。但我有点不相信。

0 投票
1 回答
3203 浏览

varnish-vcl - Varnish VCL“找不到符号:std.querysort”

我正在从这个方便的模板中复制一些 VCL 规则并在最新的稳定 Varnish4 上运行。但是 VCL 的这一部分:

返回此错误:

我应该包含一个mod还是std以某种方式定义?

0 投票
2 回答
396 浏览

varnish - 从 rpm 安装清漆时如何使用 vmods?

我正在尝试将 vmods 与清漆一起使用。但是,如果我想集成一个 vmod,我似乎需要从源代码构建清漆,例如,statsd. 但是,我已经通过在我的 centos7 机器上通过 rpm 安装 varnish 成功运行了它。

我的问题是,从 rpm 安装清漆时是否可以使用 vmod?怎么做?

0 投票
1 回答
342 浏览

caching - 使用 cookie 缓存而不缓存 Cookie

根据欧洲关于 cookie 的规则,我们需要显示一条消息,让用户知道我们使用 cookie。

当他们接受时,我们设置一个 cookie!除了严重依赖跟踪 cookie,我们还需要这个 cookie :(

我已经设置了 Varnish 来缓存资产和我的登录页面,这自然会对速度产生巨大影响。资产在做梦,主页永远不会从服务器接收 Set-Cookie,因为这就是 Varnish 开箱即用的配置方式。

我们的 varnish 服务器是 Centos 7,它已经安装了 Varnish 4。我们的目标是最终迁移到 Fastly,他们有一个指南来做我想做的事,它允许我们使用 Cookie 并避免缓存它们。

https://www.fastly.com/blog/how-to-cache-with-tracking-cookies

然而, req 变量不再在vcl_deliverVarnish 4 的范围内。

有没有人能够找到解决这个问题的方法?

0 投票
2 回答
896 浏览

varnish - 内联 C 在 Varnish-4.0.3 中不起作用

我正在使用 varnish-4.0.3 并且vcc_allow_inline_c默认off情况下。我所做的是:

并且,在 default.vcl 中,

但是,它不起作用,systemd 没有正常启动。

我也尝试过使用DAEMON_OPTS="-p vcc_allow_inline_c=on",但这也不起作用。

我在这里缺少什么?