问题标签 [varnish]
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.
css - 仅当 CSS url 更改时如何使缓存页面过期
场景:我更新了一个 CSS 文件,推送到 CDN,需要更改查询字符串中的版本号,以确保用户的浏览器下载最新的副本
这就是问题所在:我所有的页面都在 Varnish 后面,并且 CSS 文件的绝对 URL 是从 memcached 中提取的。
我是否需要使整个页面过期才能触发更新?
c - Varnish 中的小写 URL(内联 C)
在Varnish (3.0) 中,url 以区分大小写的方式处理。我的意思http://test.com/user/a4556
是与http://test.com/user/A4556
. 在我的网络服务器上,它们被视为相同的 url。我想做的是在所有请求 URL 进入时将它们全部小写。
我设法找到了这个讨论,但 Varnish 的创建者表示我必须使用内联 C 来完成它。我可以使用多个正则表达式以简单的方式实现这一点,但这似乎注定会失败。
理想情况下,我想要一个 VCL 配置来执行此操作(可以在此处找到const char *
一个示例),但我会接受一个接收 a并返回的 C 函数const char *
(我不是 C 程序员,所以请原谅我如果我的语法错误)。
varnish - 在与网络服务器相同的服务器上设置清漆
我们公司最近决定开始使用 Varnish HTTP 加速器。我们选择这个解决方案的最重要原因是因为我们是一家专门建立网上商店的公司(Magento Enterprise)=> Magento 有一个与 varnish 一起工作的商业插件。
varnish 配置已经存在于我们的测试环境中,其中包含 1 个运行 varnish 实例的(软件)负载均衡器、2 个 apache 网络服务器和 1 个存储 + 1 个 mysql 服务器。
但是现在是时候将 Varnish 添加到我们的开发环境中了(带有 1GB 内存的虚拟机运行 debian,数据库、网络服务器、文件都在同一台机器上运行)
任何人都可以为此设置发布 default.vcl 配置文件吗?
Apache2 在 80 端口上运行。
在此先感谢,肯尼
编辑:我在下面找到并发布了解决方案。
linux - plone.app.caching and settings Varnish to purge the cache
I am running Plone 4.1 on Ubuntu 10.04. How one should configure
Varnish (public IP:80) - default.vcl from Ubuntu/Debian
plone.app.caching
... so that purging works correctly
I am not that interest getting per-page cache clears, but having Purge button working in the site control panel would be nice and giving editors to easy to clear the cache in the case of emergency.
(Alternative I can show how to use varnishadm, but I think setting up Varnish and Plone to discuss each other cannot be that difficult)
varnish - 有人可以告诉我如何解决这个清漆错误吗?
这是我得到的错误:
来自 VCC 编译器的消息:
未终止的字符串
(输入第 39 行,第 19 行)
------------------################################ #############
运行 VCC-compiler 失败,退出 1 VCL 编译失败
这是default.vcl
regex - 负载均衡器后面的清漆不缓存内容
我正在使用这一行来删除 cookiedefault.vcl
以允许 Varnish 缓存
但它似乎不起作用。
Varnish 在负载均衡器后面,负载均衡器设置了一个持久性 cookie,它以这种格式出现在标头中:
我在模拟器中运行了这个正则表达式,它捕获了上面的行(直到第一个“;”)。所以我认为这个正则表达式应该抓住它,但它似乎没有?当我绕过这个负载均衡器时,内容会被缓存。
有任何想法吗?我错过了什么?
ruby-on-rails - 'Vary: If-None-Match' 分别缓存移动和桌面请求
注意:如果我的任何假设是错误的,请纠正我。我对这些都不是很确定...
我一直在研究 Heroku 上的 HTTP 缓存,并试图找出一种在 Heroku 上使用 Varnish 进行缓存时区分移动和桌面请求的好方法。
我的第一个想法是,我可以设置一个Vary
标头,以便缓存是 Varied on If-None-Match
。由于 Rails 自动发回根据内容哈希生成的 etag,etag 在桌面和移动请求(不同的模板)之间会有所不同,因此它最终会缓存两个版本(不是事实,只是我最初的想法)。我一直在玩这个,但我认为它不起作用。
首先,当/如果有任何东西被缓存时,我无法理解,If-None-Match
因为无论如何请求肯定是有条件的?其次,在实践中,新请求(没有 If-None-Match 的请求)有时会收到移动站点。这是因为缓存不知道是否提供移动或桌面缓存版本,因为If-None-Match
标题不存在?
可能听起来,我很困惑。这种方法会以任何方式起作用还是我很傻?另外,如果我根本无法访问 Varnish 配置(就像我在 Heroku 上一样),是否有实现单独的缓存版本?
我在 Rails 中用来设置缓存头的确切代码是:
编辑:我知道我可以使用Vary: User-Agent
但如果可能的话尽量避免它,因为它有很高的未命中率(很多很多用户代理)。
python - 如何让 Varnish 停止缓存 ESI 片段
我在成功使用带有 Varnish 3.0 的 ESI 和 repoze.bfg 项目时遇到问题。我有一个 ESI 片段,它通过 ESI 标签显示登录用户的通知。但是,varnish 会缓存包含的 ESI 片段,因此对片段所做的更改,无论是手动的,还是会话的结果都不会反映在包含(和缓存的)网页中。
使用的 ESI 标签:
VCL 配置:
我的假设是:
1) Varnish 每次从其缓存存储中获取时都会向“path/to/fragment.esi”和重新组装缓存网页发出请求,特别是因为对于每个 .esi 片段, beresp.ttl 都设置为 0 2) Varnish不会将 ESI 片段与网页一起存储在其缓存存储中**
synchronization - 同步多个 Varnish Cache 服务器
我们有两台服务器,web1 和 web2,每台都运行 Apache 和 Varnish。它们是负载平衡的,持续时间为 30 分钟。
在我们的测试中,我们发现某些情况是页面缓存在 Varnish 的一个实例(比如 web1)上,但没有缓存在 web2 上的 Varnish 上。
有没有办法让它们保持同步?这样当一个页面在 web1 中缓存(或清除)时,它也会被加载到 web2(或从 web2 中清除),反之亦然?
drupal-6 - 在 Drupal6 中使用带有清漆的移动工具模块?
我们可以将 Drupal6 中的 Mobile Tools 模块与 Varnish 一起使用吗?我怀疑清漆会缓存索引页面,并且不允许重定向到页面的移动版本。
周围有工作吗?