问题标签 [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.
varnish - 有没有办法为 Varnish 中的特定请求设置 req.connection_timeout ?
我在 PHP 机器前面有一个 Varnish 设置。对于 98% 的页面,单个请求超时(req.connect_timeout
在 VLC 中)有效。但是,我有几页,我们预计它们最多需要 3 分钟才能超时。有没有办法为 Varnish 中的特定请求设置 req.connection_timeout ?如果是这样,请告诉我VCL中的灯。我想req.connect_timeout
对所有页面保持相同,但为这几个特定页面提高这个数字。
java - 限制清漆客户端等待时间,而不是后端时间
我正在寻找一种解决方案来保证客户端响应时间与清漆,而不限制后端响应时间。
我有大约 100 种不同的资源(http://host/resource.js?id=1 等),它们平均在一秒钟内在后端计算。这些资源由 varnish 缓存,因此它们中的每一个都可以同时提供给许多客户端。资源包含为同步(页面阻塞)javascript,因此应快速提供响应(例如 3 秒)。因为我想保证客户端响应时间,所以我想不出比在这 3 秒上配置后端超时更好的解决方案。一个示例 vcl 如下所示:
我的问题如下。在我停止后端 5 分钟并重新启动它后(而 varnish 在宽限期内提供陈旧数据),许多不同的资源(在 TTL 之外但在宽限内)在后端同时获取。这对数据库造成了沉重的打击,并且在 3 秒内没有提供任何资源,也没有缓存任何资源。
我该如何避免这个问题?我想保证客户端响应时间,但不限制后端响应时间。暂时可以接受失败(虚拟 javascript)。有没有办法随着时间的推移传播请求?(过时的数据优先于错误)。
谢谢,艾弗
php - 为什么这个 SQL 查询会杀死我的服务器?
当我从 Varnish 缓存服务器在 SQL 服务器上运行此查询时。
表格有aiki_users
> 80000 行
和ocal_files
具有> 30000行的表。
它杀死了服务器。它是通过 ajax 从 php 脚本调用的。我必须关闭调用它的页面。
我不知道它返回什么,但我知道我想做的事情应该用 group by 和 having 创建,但我不知道如何。
aiki_users 表如下所示:
我没有正确访问服务器的权限,看不到 ocal_files 的定义,但是:
谁能告诉我查询有多糟糕以及它返回什么?
php - 如何在 ESI:include 脚本中设置 cookie?
我有一个通过 Varnish 加载的基本 PHP 页面,其中包含一个 ESI 包含回调到服务器以设置 cookie。cookie 是通过域访问等设置的,但是当通过 ESI 调用时,cookie 永远不会设置。如果您直接访问 ESI 包含路径,则 cookie 设置没有问题。我什至将我的 Varnish 配置设置为从不缓存任何内容,认为 VCL 可能会杀死 cookie。
这个...
...包括这个...
我是 Varnish 和 ESI 的新手,所以我开始怀疑这是否是一个已知的限制(无论是 ESI 还是 Varnish 的 ESI 实现),但我在网上找不到任何关于我的问题的讨论。
php - 清漆缓存不使用会话缓存 PHP 除非后端 TTL 更改
我是 Varnish Cache 的新手,有一个问题希望能得到一些帮助。
我有一个非常简单和基本的设置,但由于某种原因,它无法正常工作。
这与 Varnish 不缓存使用 cookie 的 PHP 页面有关。
这是我的设置:
1) 对于我的 default.vcl,我有一个简单的后端
2) 我有一个简单的 PHP 文件,它只有这两行:
3)当我正确调用此页面时,它不会缓存,因为我没有添加所需的 vcl 规则
4)
因此,根据我对文档的理解,我在这两条规则中添加
5) PHP 页面仍然不会缓存。我可以看到Set-Cookie
标题已被删除,因为我在 FireFox 中使用 FireBug。
只有当我将它添加到 sub vcl_fetch 时,PHP 才会缓存:
我的问题是这是正确的吗?
我认为我不需要更改后端响应的 ttl。我认为只是取消设置 cookie 会强制 PHP w/ session 缓存。
我完整的默认 vcl 是:
我的启动命令是:
我打电话的网址是:
我的 index.php 文件只有:
我想问问社区这看起来是正确的还是我错了。本质上我只是不确定为什么我必须添加 beresp.ttl = 24h 才能最终在清漆中使用页面缓存。
我以为我不需要这个。
任何建议都非常感谢。
谢谢!
亲切的问候。
varnish - Varnish - TTL 和当前日期
我想根据当前日期设置 TTL。
http://site.com/2011/03/应该有 5 天作为 TTL。
http://site.com/2011/04/应该有 1 天作为 TTL。
当前日期:2011 年 4 月 15 日
这在清漆中怎么可能?
谢谢
php - cookie 如何影响 Varnish 缓存?
Varnish 缓存如何影响 Omniture 设置的第三方 cookie 和 Google Analytics 设置的第一方 cookie?
到目前为止,我看到了反对意见,有人说因为跟踪统计信息是由 JavaScript 创建的(这是真的),从请求中删除这些 Cookie 不会影响 GA 或 Omniture。
但是在这里他们说这些软件设置了各种 cookie 来跟踪重复访问者,因此从请求中删除这些 cookie 基本上会将每个用户都视为新访问者。
我不希望我的用户每次都算作新访问者。我不确定这些 JavaScript 嵌入是否能够计算页面是提供给第一次访问者还是经常访问者。任何指向官方 GA 或 Omniture 文档的链接都非常感谢。
php - Varnish Cache 不会做 ESI 包含
我在让最简单的 Varnish Cache ESI 测试工作时遇到问题。
在尝试和尝试之后,我想我在这里问。
基本上它只是不会包含 ESI 文件。它只是返回 HTML 而没有包含它。
这是我的清漆启动命令:
这是我正在测试的 URL:
我的 vcl 规则:
1) 默认.vcl
我的示例测试 esi 代码
2) 测试.php
esi 的 php 包括
3) esi_1.php
我已经尝试了上述 vcl 规则的许多变体。
都行不通。只是看不出我哪里出错了?
非常感谢任何建议/帮助。
谢谢你。
varnish - varnishadm 删除配置
我可以删除我在清漆中加载的配置吗?
我有:
如果我尝试覆盖配置,我会收到“错误代码 106”
我可以删除列表中的配置吗?
memcached - 清漆和adsense
使用 Varnish 提供带有 AdSense 的动态(只读)页面是一种解决方案吗?还是我应该使用 Memcached 来缓存数据库查询?