首先,我使用:APC,W3TC,PHP5,Wordpress 3.8,Apache 2.2,我得到了很多“caching未命中” 还是不太明白光油那么好。 下面是我从Unixy后台运行几分钟后得到的一些统计数据: client_conn:3744 client_drop:0 client_req:3910 cache_hit:914 cache_miss:2347 我改变了我的清漆内存到3GB的RAM(总共8)。 Varnish只caching经常出现的页面是否正常? 那么假设你有一个拥有10,000页的网站,Varnish能够将所有这些内容保存在caching中,还是只caching一定数量的频繁请求的页面? 所以我的问题实际上是我可以如何改进Varnish来caching更多的页面,并将它们保存在caching中很长一段时间(大部分是不需要刷新的静态页面)
谁能真正理解升级文档所说的如何或者直接修改一个受欢迎的vcl,那么那些没有那么多经验和几乎只使用这些默认vcl文件的人呢? 这是我和我的一些朋友经常使用的一个: https://github.com/ewanleith/Wordpress-Server-Configuration-Files/blob/master/default.vcl 如果我想在4.0下使用这个东西,我该从哪里开始呢? vcl_fetch需要重命名,如果我只是重命名它,并将vcl版本添加到顶部,这将工作吗?
我正在寻找重写一个ESI包括在光油url。 在我的模板中,我有: <esi:include src="/esi/user.html" /> 其中只包含静态内容,即“欢迎访客”。 如果他们login我将会话添加到我的.vcl。 我想要做的是重写包括: <esi:include src="/esi/user.active.html" /> 在那里我会做数据库查询。 目前,在我的子vcl_recv我有: if (req.http.Cookie ~ "SessionId") { if (req.url ~ "^/esi/(.*)\.html") { set req.url = regsub("^/esi/(.*)\.html", "$0", ".active"); } } 它在前端导致503错误。 我将如何更新这个重写URL并使其工作?
如果所有的后端都被标记为“恶心”,有没有办法让Varnish 4忽略高速caching中的任何传递对象? 以下是我试图改进的故障场景: 起初后端都是健康的,performance很好,返回有效内容为200.Varnish正在caching这些页面,并根据它们的TTL服务它们。 有些事情会中断,比方说数据库查询开始的时间要比平时长。 后端开始缓慢地返回页面。 然后最终请求开始超时,后端开始返回“内部服务器错误”(状态500)。 Varnish根据默认的vcl_backend_response查看这些响应,并将它们标记为TTL为120s的vcl_backend_response 。 最后,健康检查启动,清漆最终标志着所有的后端病态。 现在随着更多的请求进来,Varnish在caching中看到一个传递对象,并决定需要做一个后端提取。 除了所有的后端生病,所以导致503“后端抓取失败”。 这503个响应会持续2分钟,这取决于第一个不可caching的响应(标记为传输命中)的时间以及后端全部显着恶化的时间。 在命中对象从高速caching(120s)过期后,Varnish开始将这些请求作为常规命中来处理,并以宽限模式提供高速caching的200状态页面(根据默认的vcl_hit – “ if (obj.ttl + obj.grace > 0) …. ) 我提出的一个解决方法是,如果来自状态500的响应,则缩短传递命中对象的TTL: sub vcl_backend_response { if (beresp.ttl <= 0s && beresp.status == 500) { set beresp.ttl = 10s; set beresp.uncacheable = true; # return inside this if statement to allow builtin vcl_backend_response […]
我需要一些build议在这里default.vcl。 这是规则: 只caching包含'/ c /'的url的网页,剩下的会通过 将caching过期设置为3小时 如果cookie'abc'和cookie'xyz'为空,则只caching并从caching中提供 谢谢!
我需要重写varnish后端收到的响应。 C函数已准备就绪,embedded在configuration文件中,并传递在响应头文件上运行的testing。 但是我需要访问响应的主体 。 不过,我找不到从响应结构中提取的方法。 有没有人有一个想法,我怎么可以提取它呢?
每当我运行命令sudo服务清漆重新启动它显示以下消息 * Stopping HTTP accelerator varnishd [fail] * Starting HTTP accelerator varnishd [fail] 来自VCC编译器的消息: Expected '.' got 'sub' (program line 98), at ('input' Line 11 Pos 1) sub vcl_recv { ###———– In backend specification starting at: ('input' Line 7 Pos 1) backend default { #######———- Running VCC-compiler failed, exit 1 VCL compilation failed 我的default.vcl文件是 # […]
我很想利用清漆的力量来caching我的PHP密集型应用程序,每天为大约40万人提供服务。 应用程序通过触发多个卷起XML的线程来search数据,因此您可以想象新线程会产生很multithreading,并且线程会保持打开状态几秒钟,从而使页面加载时间缩短了几秒。 每个search结果页面的caching将显着加快用户体验。 所以这是我的问题的基础。 我们的search结果页面需要转换代码跟踪。 因此,用户来自源/引用者A,到我们的页面domain.com/search/?q=something&source=A,select适当的转换跟踪代码(涉及引用者A)并将其输出到页面。 Cookie也被丢弃,所以下次用户返回页面时检查cookie是否存在,如果是,则select在HTML中显示正确的转换代码。 通过这种方式,转化跟踪可以在会话中进行。 问题是,鉴于我们的cookie要求的知识是否有可能在这种情况下使用清漆caching? 我们可以以某种方式configurationVCL来处理这些cookie,如果是的话,我们应该写什么? 谢谢
我正在寻找一种方法来configurationVarnish来处理varnish中的HTTP请求。 更具体地说,对于特定的path(比如* / foo / **),我希望Varnish以200个HTTP状态码和空(或固定消息)正文响应,而不是将请求转发到后端服务器。
运行varnishd(varnish-4.1.0修订版3041728) ,并使用日志logging varnishlog -q "BerespStatus >= 500" 我想知道,如果有可能打印POST内容。 在服务器上运行XML-RPC服务,有时返回500.在日志中什么也没有,所以我想知道哪个XMLRPC方法是有问题的。 有什么build议么 ?