问题标签 [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 回答
241 浏览

amazon-ec2 - Varnish 在 EC2 上不断崩溃

我已经在 EC2 上安装了 Magneto 2,并在 RDS 实例上单独托管了一个 MySQL 数据库。我已经在我的 EC2 服务器上配置了清漆。

每当我在网站上打开多个选项卡时,清漆服务器都会在几个产品页面上崩溃,并出现以下错误:

错误 503 后端提取失败”

清漆版本:Centos 6 上的 4.0.4

0 投票
2 回答
1785 浏览

varnish - 让清漆代理而不是重定向

我想使用 Varnish 作为“智能”代理,它几乎可以工作。这个想法是一些请求应该通过 Varnish 传递,打到后端并返回,所有其他请求应该返回一个特定响应不包含结果的“synt”消息。

除了 Varnish 将 301 重定向返回到后端而不仅仅是来自实际后端的响应这一事实之外,这也是有效的。

后端和缓存不在同一主机上(在这种情况下甚至不在同一网络上)。

后端也在运行一个单独的 Varnish 实例,并且这个请求总是通过它传递。

卷曲的输出:

后端apache访问日志

将请求从 AWS 实例发送到后端不会呈现 301 重定向:

单个请求的完整 varnishlog 输出

在 AWS Amazon Linux 上运行的 Varnish 4.0.4。

0 投票
2 回答
491 浏览

magento - magento ssl + 清漆

我想在我的magento商店上使用带有清漆的SSL,使用nginx我做了一个代理传递到端口80(清漆听它)。

但是当我这样做时,ESI 块返回 404。如果我绕过清漆(将代理端口更改为 8080 用于 nginx)它可以工作。

清漆配置:

Nginx 配置:

0 投票
0 回答
274 浏览

php - Varnish 4 -> 如何使用 Curl 将内容加载到 Varnish

我有 8 台服务器缓存来自 API 的内容,问题是让它们保持同步。

所以我想知道我们可以通过 curl http PURGE 以同样的方式调用每个缓存服务器并使其缓存特定的 url 吗?

我尝试同时使用 curl 和使用邮递员进行测试,但似乎将其视为不同的请求。

非常感谢所有帮助!

0 投票
1 回答
4968 浏览

varnish - Varnish 列出缓存中的所有 URL

我正在寻找一种方法来遍历整个缓存并获取对象 URL 的列表 - 当前在存储中。

有没有我遗漏的清漆命令。或者是否有人有一个很好的起点来从 vmod 中迭代对象?

问候

0 投票
1 回答
291 浏览

varnish - Varnish 4 ESI:bereq.url 不读取 ESI src 标签内的 url

我使用清漆 4、php-fpm 7、nginx、centos 7

我的清漆参数:

我的默认.vcl:

我的问题是当我使用通过访问触发的 vcl 代码时说:http://localhost/lab/varnish

哪个渲染:

Varnish 没有读取 ESI 标签内的 url src,所以它只是渲染一个空的 body。

但是当我使用这段代码时:

Varnish 成功渲染了 ESI 标签内的内容,该标签由: http://localhost/lab/esi/body生成

如何使 Varnish 基于识别 ESI“src”标签中的内容来触发 ESI 片段渲染?

我已经尝试设置 Surrogate-Capability 并使用 Surrogate-Control 检查,对我来说它也不起作用。我没头绪了。。

0 投票
1 回答
2137 浏览

varnish - 当我尝试使用 std.syslog 时,Varnish 基本配置文件抛出“VCL 编译失败”。为什么?

我有一个简单的 VCL 文件如下:

当我尝试varnishd在我的 Mac 上使用此配置开始时,我收到以下错误:

我尝试了这条线的不同变体:

如:

但它们都不起作用。

如何从我的 VCL 文件中进行简单的日志记录?

谢谢。

更新: std.log("hello")似乎可以编译...但是,我需要记录有关请求对象的信息,并且req,request等不存在。

0 投票
0 回答
262 浏览

varnish - Varnish VCL - 我如何检查 req.backend_hint?

我有以下 VCL 文件:

这个概念是我想在将用户随机分配到后端后重新编写 req.url 。

因此,当新用户到达时,他们将被随机分配到后端。然后,我将添加一些带有 if 语句的逻辑,以一种方式重写 URL 路径,如果它们被分配给支持的路径,另一种方式,如果它们被分配给后端 2。

我的问题是在线路之后

我无法弄清楚用户被分配到哪个后端。换句话说,我不知道如何检查 req.backend_hint。

我试着用

标准日志(req.backend_hint.host);

但这会引发编译错误(不是 STRING_LIST)。

我上面的例子改编自这里:http ://book.varnish-software.com/4.0/chapters/Saving_a_Request.html

所以,我的问题是:如何检查 req.backend_hint?

0 投票
2 回答
1507 浏览

varnish - Varnish VCL:如何打开 req.backend_hint?

我有以下 VCL:

当我运行它时,输出总是:

如何正确检查已选择哪个后端?

谢谢

0 投票
1 回答
822 浏览

varnish - 将 Varnish VCL 从 3 转换为 5.1.2 版本

我有这个 Varnish 默认 VCL,它可以在 3.x 版本中正常工作。但是,现在是升级的时候了。我们如何将 varnish vcl 以下升级到最新版本 5.1.2,任何人都可以提供帮助,它也可以帮助许多其他人。