问题标签 [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.
varnish - 动态添加或删除后端主机到 Varnish
在不停机的情况下,以编程方式将单个后端服务器添加到/从 Varnish 控制器中删除的最佳方法是什么?我一直在寻找一个很好的例子,但找不到。
我希望能够根据需求上下扩展我的后端服务器。
谢谢!
山姆
apache - Varnish Cache - 网页的初始缓存
我已经用我的 Apache Web 服务器安装了 Varnish 缓存并正确配置了它们。它工作正常,我现在可以通过 Varnish Cache 访问我的网页。
varnish 的默认行为是存储 Web 服务器提供的页面的副本。下次请求同一页面时,Varnish 将提供副本,而不是从 Apache 服务器请求该页面。
现在我的问题来了:是否可以在设置 Varnish 缓存后最初缓存我的整个网站,而无需访问页面然后将其存储在缓存中?这是因为,在设置清漆之后,缓存最初是空的,它需要访问一个页面才能在缓存上可用。这可以在不必手动访问每个页面的情况下完成吗?
varnish - Varnish:有条件地清除缓存以确保资源是最新的
假设我有一个“资源” - http://localhost/doc
,我希望它会一直被 Varnish 缓存,因为它经常被访问,除非有人通过 POST 更新它,在 POST 更新完成后,所有进一步的请求都应该检索最新版本的“博士”。
我的想法是将这个逻辑包装在我的后端服务器中,因为 POST 请求默认情况下将通过 Varnish 而不进行缓存,并且在我的后端服务器中我可以:
- 执行命令:
varnishadm -T 127.0.0.1:6082 purge req.url == "/doc"
- 触发 HTTP 清除请求:
curl -X PURGE http://localhost/doc
但是,它需要我配置 VCL 来尊重“ Cache-Control
”标题!我的 VCL 如下所示,但不起作用:
它投诉:
- 问题1:如何更新VCL以实现我的目标?
- 问题2:我认为这是一个非常常见的场景:缓存资源同时保持最新,那么使用Varnish实现这一目标的最佳实践是什么?
感谢您的任何回复!
caching - Varnish - 如何缓存登录用户
我安装了清漆,一切正常。
但是,我需要缓存已登录的用户。这就是我的 VCL 中的内容:
上述方法有效,但用户可以查看其他用户数据,例如假设我以 Sam 身份登录并访问页面 A。当另一个用户(例如 Angie)登录并打开页面 A 时,她看到的内容与 Sam 相同。
有没有办法可以将页面限制为实际有权查看该页面的登录用户?
我的请求标头如下:
我可以使用Authorization
请求标头上的条目来强制执行此限制吗?
magento - 使用 magento 运行的清漆设置
我正在使用 magento 创建一个电子商务网站。
我正在使用 nginx,php5-fpm。
我有 512mb RAM 和 4CPU 内核。
我想使用这些规格的清漆。我想知道我应该在清漆配置中设置什么值,以便我的服务器可以以最小的延迟处理最大的请求?我尝试了一些清漆配置,但我得到的响应时间比没有清漆时的响应时间要长。
caching - 清漆:POST数据后清除缓存
我有一个位于 Varnish 后面的 Plone 网站。一切正常,除了一件事。
这是一个动态站点,因此不时会有新内容。场景如下:
我有一个显示项目列表的页面。此页面已被缓存。所以我通过某种形式添加了另一个项目,并返回到同一页面,但新项目未显示。这是因为显示的页面来自缓存并且仍在其 TTL 内。
如何确保在提交新项目后,从缓存中清除该页面,并显示来自后端服务器的新页面以及新项目?
我的简单VCL如图所示:
或者说白了,当我收到 POST 请求时,如何清除或清除域的整个缓存?
url - 使用 Varnish 更改后端的 url 但不是客户端的 url
我想将客户端网址“www.example.com/download..”操作为“one.other.com/download ...但我希望客户端上的网址保持第一个”www.example.com/download "
Varnish 3有没有办法做到这一点?
caching - 使用 Varnish 更改标头中的引用者
我认为这是使用 varnish 的一种可能性,您可以在其中更改其用户标头中的引用者,然后从缓存或服务器为他们提供内容。我想知道如何才能做到这一点。
我在centos 32位机器上用“req.http.referer”然后在varnish 2.1中“设置req.http.referer”尝试了这个,但是当我用命令“varnishtop -i TxHeader -”检查结果时它不起作用我推荐人”。
有人有比这更好的想法吗?
drupal - 多站点 Drupal 的 Varnish VCL 配置?
我目前的设置是:
- Varnish at
:80
和 Drupal at:8080
在同一个盒子上 - Drupal 作为多站点运行,例如
site1.xx.com
,site2.xx.com
- 多站点域由 Apache V.Hosts 解决
在这种 Drupal 设置上是否有任何标准/通用 VCL 配置?或者,Default VCL 文件是什么意思?
varnish - 多个 url 清除清漆问题
我对清漆清除有疑问:
我们的应用程序非常动态。因此,对象 A 上的事件将生成 10.000 次清除,因为对象 A 信息存在于所有页面中。
对象 A 是统计卖家,页面是广告页面。
我们通过使用 curl 对 php 代码中的清漆进行异步 http PURGE 调用来管理它。
所以我们将有 10000 个 http 调用无法计算 url(所以 REgex 不是选项)
我想问你们,清漆有没有可能做一些批量清除(HTTP接口)?
如果没有,当模型和事件对您的页面有很大影响时,您在一个非常动态的应用程序中测试和工作的选项是什么。
在此先感谢纳比尔