问题标签 [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.
varnish - 清漆:如果我在 hash_data 中有 cookie,则清除
问题:
我无法清除我的页面。很多次之后,我决定找出清除的工作原理并找到!
如您所见,我们使用了一个新动作——return(purge)。这将结束 vcl_recv 的执行并跳转到 vcl_hash。这就像我们处理常规请求一样。当 vcl_hash 调用 return(lookup) varnish 将清除对象,然后调用 vcl_purge。在这里,您可以选择添加任何您希望 Varnish 在清除对象后采取的特定操作。文档
然后我了解到我在 hash_data 中有 cookie,我无法清除特定的 url。
问题:
如何通过 URI 清除我的所有页面?我觉得禁令系统帮不了我。也许你给我一些建议?
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) - 在包含之前执行后端,会导致重新定义错误。
模拟后端的正确方法是什么?
varnish - Varnish 打破社交分享
Facebook 使用带有范围选项的 curl 来检索页面的 HTML 以进行共享。Varnish 只返回页眉信息而不是 html。这是我会说 75% 到 80% 的时间的结果。每隔一段时间它就会返回正确的结果
任何人都有一个想法如何解决这个问题。
例子
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)
varnish - Varnish4:需要一个随机整数值
我需要 Varnish 4 中的随机整数值。
std.random() 函数产生一个带有三个尾随数字的 REAL。
我很想找到一些与 Fastly 在其扩展 VCL 中提供的功能等效的功能:'randombool()' 甚至更好的 'randombool_seed()'
谢谢!
caching - 清漆紧急后端或服务静态错误
我的想法是在主后端配置 Varnish-cache 失败(例如 HTTP 503),首先尝试另一个后端,如果失败,提供静态错误消息。
可以这样配置吗?PS我不希望清漆与紧急后端一起使用,除非主服务器真的失败了。紧急后端总是有一些过时的数据。
我正在使用 Varnish 4,计划很快迁移到 5.X。后端是 Java 或 PHP 应用程序。
varnish - varnish 5.0 varnishstat 显示带有参数 f 的空响应
我对 varnishtat 有疑问,它使用 f 参数返回空解决方案。
我打算使用 varnishstat 来监控 varnish,如下所示:
在以前版本的清漆上,如 4.0.3,没有问题,我将值接收到控制台或内联。但是一旦我使用 f 参数,在清漆上,答案是空的。
如果我这样使用:
它工作得很好,但如果我想定位一个特定的值,我会得到一个空的响应作为回报。
你有办法让varnistat像往常一样做出反应吗?
非常感谢。
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?
varnish - Varnish 4 round_robin director 可以用来在 404 上重试下一个服务器吗
我知道关于这个话题有很多问题和答案。但它们中的大多数是用于 Varnish 3 或不使用 round_robin 导演的。
- 我在 Varnish 中配置了 2 个网络服务器。
- 一些静态文件可能只在两个网络服务器之一上生成。
- 在 404 响应中,我希望清漆尝试其他网络服务器。
目前我已经使用以下 VCL 进行了测试:
在我的小测试中,这似乎有效。但我不明白这是如何工作的。
bar.backend() 是否记得哪些服务器已被使用并跳过那些?或者这只是全局循环,是否有可能,如果在处理期间有另一个请求进入,服务器会被调用两次?
更新: 以下 VCL 似乎可以工作:
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 行是如何重复多次的?