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

apache2 - 当我打电话给 Vhost 时,清漆不起作用

当我从 ip:port (port = 6081) 调用它时,我的清漆运行良好但是当我尝试从它的 Vhost (exp.example) 调用它时,我的网站在没有清漆的情况下运行!

我的默认.vlc

backend tcook { .host = "127.0.0.1"; .port = "80"; }

虚拟主机:

我在互联网上尝试了许多解决方案,但没有运气!

0 投票
2 回答
1586 浏览

varnish - 如何在清漆 vcl 中转义双引号

在 vcl_recv 中,我尝试向 url 中包含以下字符的请求发送 403:",',<,>,(, and )

除了双引号“我尝试了正则表达式,一切正常:

它们都不能用“varnishd -C -f default.vcl”编译我目前在 varnish-4.1.1 有谁知道如何正确转义“?

0 投票
1 回答
73 浏览

php - 异常的间歇性页面加载

我遇到了一个问题,甚至不知道如何开始诊断它。

我当前的服务器设置如下;

Ubuntu 16.04、Apache 2.4、PHP7.0-FPM、Mysql 5.6 和 Varnish 4。

Apache 监听端口 443,Varnish 监听端口 80。对端口 443 的请求是 ProxyPass 到端口 80 上的 Varnish,如下所示(vhost 片段)。

Varnish 然后提供静态内容并将其他所有内容通过端口 8080 传递给 Apache。

PHP 请求由 php-fpm 处理,设置如下(vhost 片段)。

出于某种原因,当 Varnish 处理请求时,在浏览网站时,尤其是在将产品添加到购物车时,页面加载将暂停几乎完美的 60 秒,然后继续加载。在大多数情况下,它的加载速度非常快。但是当它挂起时,apache、varnish、php-fpm、mysql,包括 php-fpm 慢日志和 mysql 慢日志不会显示任何错误。

当 Varnish 被禁用(管道所有请求)时,我似乎无法重现该错误。

我如何查看是什么阻碍了请求或进程?

我很困惑下一步该去哪里看?

0 投票
2 回答
1487 浏览

varnish - 清漆 host_header 不发送到后端

我试图用两个需要完全主机名的后端来运行清漆。但是我的 nginx 正在接收一个localhost主机头。

这是我的配置:

这是我的 nginx 访问日志:

bimer-cache-nginx-ssl-proxy_1 | 172.17.0.3 - - [21/Jun/2017:13:41:47 +0000] "POST /ws/Servicos/Geral/Localizacoes.svc/REST/LocalizarPessoas HTTP/1.1" 502 575 "-" "Mozilla/5.0 ( X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36" <-> localhost 172.17.0.1, 172.17.0.3

看起来将 host_header 参数设置为后端不适用于常规请求。但是健康检查运行良好。

0 投票
1 回答
429 浏览

varnish - 返回(通过)命中或未命中

我知道有人使用 return(pass) 是因为不想缓存内容并将请求传递给后端。所以,如果真的是这样,为什么我会用 HIT 代替 MISS。这是我的vcl:

}

这是 varnishlog 的一部分:

  • VCL_call RECV
  • VCL_return 哈希
  • VCL_call HASH
  • VCL_return 查找
  • 打 20
  • VCL_call HIT
  • VCL_return 交付

谢谢你。

0 投票
0 回答
277 浏览

caching - 使清漆缓存成为失败 ESI 的综合响应

我们使用 varnish 4 来缓存和处理 ESI。对于返回 5XX 后端错误的 ESI 请求,我们返回一个空的合成响应。

该空响应应该被缓存几秒钟,因为当前对同一 ESI 的每个后续请求都会再次命中后端。每当 5XX 响应的原因是昂贵的原因时,这都会导致我们的后端负载过重。

我们试图Retry-After在响应中添加一个标头,但这并不能解决问题。

0 投票
0 回答
493 浏览

varnish - 由于文件存储参数,消失缓存未启动

我在我的 centos 7 盒子上安装了 varnish 4.0,我的 params 文件如下所示:

当我启动我的清漆时,我收到以下错误:

文件的所有者是清漆,我已经没有想法如何让它工作了。

0 投票
1 回答
432 浏览

varnish - 无法从清漆缓存中排除robot.txt

我试图通过在 default.vcl 中使用以下代码行来排除 robots.txt 形式的清漆缓存

现在开发工具中的 Network 选项卡,它显示 Age: 0 和 X-Cache:MISS。但是,由于某种原因,清漆不会将文件排除在缓存之外。我什至从它的位置删除了文件。但它仍然加载网址https://www.example.com/robots.txt

我还使用以下命令清除了清漆缓存

它显示 200 Purged 消息,但仍然没有运气。

谁能帮我吗 ?

0 投票
1 回答
658 浏览

caching - 使用单个 http 请求在 varnish 4 中初始化/刷新 url 的最佳方法是什么?

强制缓存未命中说明指出:

强制缓存未命中不会驱逐旧内容。这意味着这会导致 Varnish 在缓存中拥有多个内容副本。在这种情况下,总是使用最新的副本。请记住,只要它们的生存时间是正数,重复的对象就会一直存在。

我不想在缓存中保留多个副本。我启动网址的方法是否有效?我通过将旧内容添加到禁令潜伏者来手动驱逐​​旧内容。然后强制缓存错过自己替换被禁止的内容。

这个逻辑对我来说是有道理的,我只是担心,因为没有其他人做过(我假设这是有原因的)。

这是使用purge with restart的错误方法吗?如果是这样,使用单个 http 请求启动 url 的最佳方法是什么?

0 投票
2 回答
240 浏览

varnish - Varnish 从不发送 If-Not-Modified

我正在尝试使用 varnish 来缓存 rpm 和其他巨型二进制文件。我所期望的是,当缓存中的对象过期时,清漆会向后端发送带有 If-Not-Modified 的请求,然后假设对象没有更改,清漆会刷新本地缓存对象上的 ttl无需下载新的。我编写了一个测试后端来生成特定的请求(设置小的 max-age 和诸如此类的东西,以及查看标头清漆发送),但我从来没有得到任何其他东西然后完全获取。If-Not-Modified 从不发送。我的 VCL 基本上是默认的 VCL。我尝试设置小 ttl/grace,但从未得到任何有趣的行为。

清漆甚至能够做我想做的事吗?如果是这样,有没有人做过类似的事情并可以提供提示?