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

caching - 为什么有这么多通过清漆?

我有一个清漆缓存(版本 4),其后端有时会变得“慢”。当这个后端“慢”到不饱和时,我使用健康检查来强制清漆从缓存中提供陈旧的内容。

所以 mi 后端定义:

}

}

并配置宽限模式:

}

但只有在这种配置下,如果后端有问题并且缓存中不存在对象,varnish 会返回 503(我想从后端获取)。为了避免这种行为,我必须在 vcl_miss 中放置相同的 conf 以强制清漆从“病态”后端获取内容:

}

这样,结果正如预期的那样,当后端很慢时,清漆从缓存中提供陈旧的内容并且响应时间得到改善。

但是,我发现现在我有更多的“通过”请求。请求当然,清漆应该缓存(并且在它之前)。大约 * 100 多个。所以我解决了一个问题,但我创造了另一个。

cookie 未设置(在 recv 和后端响应中),以强制清漆进行缓存。

所以,我的问题是......为什么我有很多通行证请求?我怎么能避免呢?

0 投票
1 回答
228 浏览

html - 如何使用 Varnish 引用包含编码 HTML 实体的 ESI URL?

我正在使用 Varnish 4.1.2,并尝试包含 ESI 内容。有时,所包含内容的 URL 可能包含编码的 HTML 实体,例如'( ')。

例如,我的应用程序为外壳返回的 HTML 中有以下内容:

应该会导致 ESI 请求具有 3 个段且没有查询字符串的路径,当完全解码时,会导致:

  • esi
  • map
  • alice's house

第三段中的撇号是 HTML 编码的,因为它是在 HTML 文档中传输的。该空间是 URL 编码的,因为它是 URL 的一部分。

然而,在发出 ESI 请求之前,Varnish 似乎没有解码 HTML 编码的实体。它发送一个请求/esi/map/alice's%20house,这是一个错误的请求,因为&在路径或 URL 中是不合法的。

如何让 Varnish 正确处理这些 ESI 链接?

0 投票
4 回答
66576 浏览

caching - 如何清除清漆中的完整缓存?

我正在寻找一种方法来清除 Varnish 中所有域和所有 URL 的缓存。

目前,我需要为每个 URL 发出单独的命令,例如:

虽然我正在寻找一种方法来做类似的事情

这将清除 example.com 下的所有 URL,以及 example.com 子域中的所有 URL,基本上所有由 Varnish 管理的 URL。

知道如何实现这一目标吗?

这是我当前的 VCL 文件:

0 投票
1 回答
3309 浏览

varnish - Varnish是否默认缓存404?

我真的很惊讶我在任何地方都找不到这个答案,但我做不到。

vcl_recvVarnish 4.0+等内置VCL ,Varnish是否默认缓存404响应?

0 投票
1 回答
140 浏览

caching - Varnish4 - 更改 PURGE 响应标头

我正在尝试更改 Varnish4 中的 PURGE 响应标头

我在vcl_recvvcl_deliver中修改了“ Server: Varnish ” 。除了 PURGE 之外,这似乎适用于任何其他请求。

我需要更改服务器标头或至少添加自定义响应标头

我找不到任何关于它的文档,所以我想知道是否有人以前做过,或者它是一个硬编码的选项。

0 投票
1 回答
1471 浏览

symfony - 缓存 sitemap.xml 是个好主意吗?

我有一个由我的 Symfony 应用程序动态生成的 sitemap.xml 页面。我也使用清漆。我想知道缓存 sitemap.xml 页面是个好主意还是没用?

谢谢。

0 投票
1 回答
228 浏览

caching - 在 Varnish 4 vcl 文件上更改 default_ttl

我愿意从配置文件中更改默认 ttl 值,而不是通过 varnishd。

0 投票
1 回答
257 浏览

varnish - Varnish 4.1 - 根据后端响应调用重启

在 Varnish 4 之前,可以从 vcl_fetch 调用重新启动以启动另一个到达 vcl_recv 的流。

在版本 4 中,逻辑被分离到客户端和后端,我需要能够根据后端响应调用重启。我认为可能的一个方向是使用 vcl_synth 作为后端和客户端之间的中间件,但后端无法发送特定的错误代码或仅 msg 标准 503 错误。

有任何想法吗?

0 投票
1 回答
767 浏览

varnish - 如何限制 Varnish 使用多少 CPU 内核?

我有一个 8 核服务器,它将在 HTTP 服务器前面运行 Varnish,两者都在同一台机器上。

如何限制 Varnish 使用不超过 4 个内核?

我已经阅读了文档中的工作池,但它也这样说:

“虽然 Varnish 线程模型允许你使用多个线程池,但我们建议你不要修改这个参数。根据我们的经验和测试,我们已经看到 2 个线程池就足够了。换句话说,Varnish 的性能并没有添加超过 2 个池时增加。

注意 如果您遇到建议每个 CPU 内核有一个线程池的调优建议,请放心,这是旧建议。我们建议最多有 2 个线程池,但您可以增加每个池的线程数。”

所以看起来2个线程池就足够了。这是否意味着在这种情况下只使用两个 CPU 内核?

搜索文档到目前为止我还没有找到明确的答案。

0 投票
1 回答
743 浏览

varnish - 在清漆 4 中的 cookie 上设置 HTTPOnly 标志

我们的基础设施中有设备生成的 cookie,我们无权访问设备的配置,因此无法在它直接生成的 cookie 上设置 HTTPOnly 标志。

我们在这个设备前面确实有一个清漆 4 缓存,是否可以在 cookie 上设置 HTTPOnly 标志?如果是这样,怎么办?