问题标签 [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 投票
1 回答
1424 浏览

varnish - 清漆:如果我在 hash_data 中有 cookie,则清除

问题

我无法清除我的页面。很多次之后,我决定找出清除的工作原理并找到!

如您所见,我们使用了一个新动作——return(purge)。这将结束 vcl_recv 的执行并跳转到 vcl_hash。这就像我们处理常规请求一样。当 vcl_hash 调用 return(lookup) varnish 将清除对象,然后调用 vcl_purge。在这里,您可以选择添加任何您希望 Varnish 在清除对象后采取的特定操作。文档

然后我了解到我在 hash_data 中有 cookie,我无法清除特定的 url。

问题

如何通过 URI 清除我的所有页面?我觉得禁令系统帮不了我。也许你给我一些建议?

0 投票
1 回答
373 浏览

varnish - Varnish VTC 包括 - 覆盖后端{} -

我目前正在尝试在我不断增长的清漆配置文件中添加一些单元测试。

varnishtest我设法对其进行了初始化,并且我想我掌握了vtc格式的基础知识。

我需要加载我的varnish.vcl- 里面有一些后端。必须有.host 一些内部主机,不能从 CI 机器解析。

我如何覆盖后端?

我的想法基本上是这样的:(api01 是varnish.vcl用内部 dns 定义的。)

它失败了 - 那Backend host '"api_loadbalancer"' could not be resolved to an IP address

但它不会继续定义上面的后端(使用 127.0.0.1) - 在包含之前执行后端,会导致重新定义错误。

模拟后端的正确方法是什么?

0 投票
2 回答
161 浏览

varnish - Varnish 打破社交分享

Facebook 使用带有范围选项的 curl 来检索页面的 HTML 以进行共享。Varnish 只返回页眉信息而不是 html。这是我会说 75% 到 80% 的时间的结果。每隔一段时间它就会返回正确的结果

任何人都有一个想法如何解决这个问题。

例子

0 投票
1 回答
182 浏览

linux - 我正在尝试安装清漆

清漆网站中的说明是

清漆安装

不是 rpm --nosignature -i https://repo.varnish-cache.org/redhat/varnish-4.1.el6.rpm 和 yum install varnish 做同样的事情吗?我终于安装了清漆,但我不清楚自己做了什么。此外,缺少文件 varnish.params (/etc/varnish/varnish.params)。为什么会这样?我可以使用 varnish -V 命令查看版本(varnishd (varnish-4.1.4 修订版 4529ff7)

0 投票
2 回答
774 浏览

varnish - Varnish4:需要一个随机整数值

我需要 Varnish 4 中的随机整数值。

std.random() 函数产生一个带有三个尾随数字的 REAL。

我很想找到一些与 Fastly 在其扩展 VCL 中提供的功能等效的功能:'randombool()' 甚至更好的 'randombool_seed()'

谢谢!

0 投票
1 回答
133 浏览

caching - 清漆紧急后端或服务静态错误

我的想法是在主后端配置 Varnish-cache 失败(例如 HTTP 503),首先尝试另一个后端,如果失败,提供静态错误消息。

可以这样配置吗?PS我不希望清漆与紧急后端一起使用,除非主服务器真的失败了。紧急后端总是有一些过时的数据。

我正在使用 Varnish 4,计划很快迁移到 5.X。后端是 Java 或 PHP 应用程序。

0 投票
1 回答
101 浏览

varnish - varnish 5.0 varnishstat 显示带有参数 f 的空响应

我对 varnishtat 有疑问,它使用 f 参数返回空解决方案。

我打算使用 varnishstat 来监控 varnish,如下所示:

在以前版本的清漆上,如 4.0.3,没有问题,我将值接收到控制台或内联。但是一旦我使用 f 参数,在清漆上,答案是空的。

如果我这样使用:

它工作得很好,但如果我想定位一个特定的值,我会得到一个空的响应作为回报。

你有办法让varnistat像往常一样做出反应吗?

非常感谢。

0 投票
1 回答
1944 浏览

varnish-vcl - 使用 cookie 进行清漆缓存

刚接触清漆。它变得越来越难,超出预期:-(

我正在尝试使用 varnish 改进一些前一段时间开发的 php 代码。此代码仅使用两个 cookie:PHPSESSID 和 LANGUAGE

如果未定义,所有页面都会设置 PHPSESSID cookie。然而,这个用于匿名会话的 cookie 只在一个页面中使用。

假设我有 Page1、Page2、Page3 和 Page4。我的配置应该如下:

Page1、Page2 和 Page3 需要 LANGUAGE cookie 并应与该 cookie 一起缓存:每种语言和页面都有一个缓存。

Page4 需要 PHPSESSID 和 LANGUAGE cookie,并且不应该被缓存,因为它是特定于每个用户的。

我的 default.vlc 工作不正常,所以任何方向都会非常感激。也许我误解了一些概念。

我需要使用 LANGUAGE cookie 缓存网页,因此我将其包含在 vcl_hash 中:

如何仅删除 PHPSESSIONID?

0 投票
1 回答
702 浏览

varnish - Varnish 4 round_robin director 可以用来在 404 上重试下一个服务器吗

我知道关于这个话题有很多问题和答案。但它们中的大多数是用于 Varnish 3 或不使用 round_robin 导演的。

  • 我在 Varnish 中配置了 2 个网络服务器。
  • 一些静态文件可能只在两个网络服务器之一上生成。
  • 在 404 响应中,我希望清漆尝试其他网络服务器。

目前我已经使用以下 VCL 进行了测试:

在我的小测试中,这似乎有效。但我不明白这是如何工作的。

bar.backend() 是否记得哪些服务器已被使用并跳过那些?或者这只是全局循环,是否有可能,如果在处理期间有另一个请求进入,服务器会被调用两次?

更新: 以下 VCL 似乎可以工作:

0 投票
1 回答
556 浏览

varnish - Varnish 4:如何使用 cookie 清除缓存

当人们将语言从西班牙语更改为其他语言时,我们的软件会使用 cookie “selected_language”。默认情况下未设置 cookie。

我们需要考虑语言来缓存我们的网站,所以我们的 index.php 被缓存了几次,每种语言一个。

我们的哈希函数使用语言 cookie(我们得到了更多的 cookie,但它们在 vcl_recv 中被删除了,只有语言 cookie(如果有的话)进入哈希例程:

当我们想要清除缓存时,问题就来了。如果我们清除索引网页,不使用 cookie(西班牙语版),一切正常:

但是,如果我们尝试使用 cookie(英文版)清除我们的索引网页,它什么也做不了。我认为 purge 使用哈希,所以如果我发送相关的 cookie,它应该可以工作。

我们的清除代码:

vcl_recv 内部:

这些都是日志,以备不时之需...

我再次询问该页面,该页面已缓存:

我尝试清除页面,所以我发送了 cookie:

curl -X PURGE --cookie "selected_language=en" http://www.arasaac.org/index.php

日志对我来说似乎很好:

但是,如果我在浏览器中再次加载 index.php,缓存仍然存在:

顺便问一下.. Cookie 相关日志中的 ReqHeader 和 Reqset 行是如何重复多次的?