问题标签 [varnish-vcl]

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 回答
4267 浏览

varnish - 动态添加或删除后端主机到 Varnish

在不停机的情况下,以编程方式将单个后端服务器添加到/从 Varnish 控制器中删除的最佳方法是什么?我一直在寻找一个很好的例子,但找不到。

我希望能够根据需求上下扩展我的后端服务器。

谢谢!

山姆

0 投票
2 回答
3338 浏览

apache - Varnish Cache - 网页的初始缓存

我已经用我的 Apache Web 服务器安装了 Varnish 缓存并正确配置了它们。它工作正常,我现在可以通过 Varnish Cache 访问我的网页。

varnish 的默认行为是存储 Web 服务器提供的页面的副本。下次请求同一页面时,Varnish 将提供副本,而不是从 Apache 服务器请求该页面。

现在我的问题来了:是否可以在设置 Varnish 缓存后最初缓存我的整个网站,而无需访问页面然后将其存储在缓存中?这是因为,在设置清漆之后,缓存最初是空的,它需要访问一个页面才能在缓存上可用。这可以在不必手动访问每个页面的情况下完成吗?

0 投票
1 回答
879 浏览

varnish - Varnish:有条件地清除缓存以确保资源是最新的

假设我有一个“资源” - http://localhost/doc,我希望它会一直被 Varnish 缓存,因为它经常被访问,除非有人通过 POST 更新它,在 POST 更新完成后,所有进一步的请求都应该检索最新版本的“博士”。

我的想法是将这个逻辑包装在我的后端服务器中,因为 POST 请求默认情况下将通过 Varnish 而不进行缓存,并且在我的后端服务器中我可以:

  1. 执行命令:varnishadm -T 127.0.0.1:6082 purge req.url == "/doc"
  2. 触发 HTTP 清除请求:curl -X PURGE http://localhost/doc

但是,它需要我配置 VCL 来尊重“ Cache-Control”标题!我的 VCL 如下所示,但不起作用:

它投诉:

  • 问题1:如何更新VCL以实现我的目标?
  • 问题2:我认为这是一个非常常见的场景:缓存资源同时保持最新,那么使用Varnish实现这一目标的最佳实践是什么?

感谢您的任何回复!

0 投票
2 回答
5443 浏览

caching - Varnish - 如何缓存登录用户

我安装了清漆,一切正常。

但是,我需要缓存已登录的用户。这就是我的 VCL 中的内容:

上述方法有效,但用户可以查看其他用户数据,例如假设我以 Sam 身份登录并访问页面 A。当另一个用户(例如 Angie)登录并打开页面 A 时,她看到的内容与 Sam 相同。

有没有办法可以将页面限制为实际有权查看该页面的登录用户?

我的请求标头如下:

我可以使用Authorization请求标头上的条目来强制执行此限制吗?

0 投票
1 回答
4432 浏览

magento - 使用 magento 运行的清漆设置

我正在使用 magento 创建一个电子商务网站。

我正在使用 nginx,php5-fpm。

我有 512mb RAM 和 4CPU 内核。

我想使用这些规格的清漆。我想知道我应该在清漆配置中设置什么值,以便我的服务器可以以最小的延迟处理最大的请求?我尝试了一些清漆配置,但我得到的响应时间比没有清漆时的响应时间要长。

0 投票
1 回答
3401 浏览

caching - 清漆:POST数据后清除缓存

我有一个位于 Varnish 后面的 Plone 网站。一切正常,除了一件事。

这是一个动态站点,因此不时会有新内容。场景如下:

我有一个显示项目列表的页面。此页面已被缓存。所以我通过某种形式添加了另一个项目,并返回到同一页面,但新项目未显示。这是因为显示的页面来自缓存并且仍在其 TTL 内。

如何确保在提交新项目后,从缓存中清除该页面,并显示来自后端服务器的新页面以及新项目?

我的简单VCL如图所示:

或者说白了,当我收到 POST 请求时,如何清除或清除域的整个缓存?

0 投票
1 回答
2689 浏览

url - 使用 Varnish 更改后端的 url 但不是客户端的 url

我想将客户端网址“www.example.com/download..”操作为“one.other.com/download ...但我希望客户端上的网址保持第一个”www.example.com/download "

Varnish 3有没有办法做到这一点?

0 投票
1 回答
2318 浏览

caching - 使用 Varnish 更改标头中的引用者

我认为这是使用 varnish 的一种可能性,您可以在其中更改其用户标头中的引用者,然后从缓存或服务器为他们提供内容。我想知道如何才能做到这一点。

我在centos 32位机器上用“req.http.referer”然后在varnish 2.1中“设置req.http.referer”尝试了这个,但是当我用命令“varnishtop -i TxHeader -”检查结果时它不起作用我推荐人”。

有人有比这更好的想法吗?

0 投票
1 回答
944 浏览

drupal - 多站点 Drupal 的 Varnish VCL 配置?

我目前的设置是:

  • Varnish at:80和 Drupal at:8080在同一个盒子上
  • Drupal 作为多站点运行,例如site1.xx.comsite2.xx.com
  • 多站点域由 Apache V.Hosts 解决

在这种 Drupal 设置上是否有任何标准/通用 VCL 配置?或者,Default VCL 文件是什么意思?

0 投票
1 回答
1585 浏览

varnish - 多个 url 清除清漆问题

我对清漆清除有疑问:

我们的应用程序非常动态。因此,对象 A 上的事件将生成 10.000 次清除,因为对象 A 信息存在于所有页面中。

对象 A 是统计卖家,页面是广告页面。

我们通过使用 curl 对 php 代码中的清漆进行异步 http PURGE 调用来管理它。

所以我们将有 10000 个 http 调用无法计算 url(所以 REgex 不是选项)

我想问你们,清漆有没有可能做一些批量清除(HTTP接口)?

如果没有,当模型和事件对您的页面有很大影响时,您在一个非常动态的应用程序中测试和工作的选项是什么。

在此先感谢纳比尔