我使用Varnish do_gzip来保存压缩的对象,并且每次都会有一个ESI请求。 清漆会做什么? 我认为它解压缩对象,并填写ESI响应,然后压缩组合的对象,并返回。
我有两个后端,我在我的Web服务器上提供,他们都是由第三方公司远程托pipe。 其中之一是一个支持门户页面,这是传递cookie,我怀疑是导致页面无法加载。 我看到varnish将请求传递到后端,但是当请求到达后端时,我看到以下响应: 14 FetchError c http read error: 0 15 BackendClose b support 14 VCL_call c error 我的VCL设置,运行时参数和完整日志输出的详细信息可以在我的要点页面上find: https : //gist.github.com/4321241 。 有什么东西不允许cookies通过或不知何故被切断? 是否有一个更宽松的“通行证”规则,我可以把这个排除在外?
我正在尝试在varnishlog中显示错过的url。 以下命令返回整个事务: varnishlog -m "TxHeader:X-Cache: miss" 我只想显示请求的URL,但是下面的命令show nothig: varnishlog -m "TxHeader:X-Cache: miss" -i RxURL 任何人都可以指向正确的方向吗? 在Ubuntu服务器上清漆版本是3.0.2-1ubuntu0.1
我的清漆设置看起来像这样(显然我已经简化): director default round-robin { { .backend = me! } } director peers random { { .backend = peer1 } { .backend = peer2 } { .backend = peer3 } } 而我想知道的VCL: if (req.restarts == 0) { set req.backend = default; } else { set req.backend = peers; } 清漆是什么当我的! 生病了(或者如果导演的所有后台都生病了,只有我的情况是1/1)? 它立即进入vcl_error,并触发重启? 我想知道它将如何处理最大重新启动。 在这个例子中,我只想在放弃之前尝试两次。 我总是想先尝试在本地获取页面,然后如果失败,请尝试我的同行之一。 […]
我在Debian Wheezy系统上使用Varnish 3.0.2。 我希望能够设置自定义标题,并让他们的内容出现在请求日志中。 然而,尽pipe我知道头文件正在被设置并传递到后端,但是它们的内容似乎对varnishncsa不可见。 在我的vcl_recv有 set req.http.X-my-header = "blahblah"; 而对于testing,这是我varnishncsa自定义格式string: '%{X-my-header}i' 我应该在每个请求的日志中看到blahblah 。 但是,我所得到的是- 。 看来我的头没有被传递给varnishncsa 。 我如何将自定义标题包含在日志中?
我想用以下方式configuration清漆(仍然在版本3上): 如果后端可用,则每个请求都应该转到后端,因此不应使用caching的结果。 如果后端不可用(如此不健康),我想使用第二天的caching结果。 如果一天之后后台仍然不健康,应该显示错误。 我尝试了使用宽限制机制的下列configuration,但是这不起作用:虽然所有的请求都进入后端(所以如果后端可用,所以没有caching的答案),在发生故障的情况下,我立即得到一个Varnish Error (不可用),而不是使用caching数据的清漆。 我究竟做错了什么? sub vcl_recv { if (req.backend.healthy) { # No caching if backend is healthy set req.grace = 1s; } else { # Otherwise accept requests up to 1 day old set req.grace = 1d; } } sub vcl_fetch { # Cached requests are not valid at all set […]
我们已经从第3版迁移Varnish到版本4.0.1(通过Debian软件包)。 几乎相同的configuration和内存设置在清漆3上运行完美。但是,在清漆4时,在一段时间(2 – 24小时)之后请求caching的对象时会有大的延迟(2 – 10秒)。 以下是一个varnishstat输出: MAIN.uptime 167191 1.00 Child process uptime MAIN.sess_conn 6329434 37.86 Sessions accepted MAIN.sess_drop 0 0.00 Sessions dropped MAIN.sess_fail 0 0.00 Session accept failures MAIN.sess_pipe_overflow 0 0.00 Session pipe overflow MAIN.client_req_400 0 0.00 Client requests received, subject to 400 errors MAIN.client_req_411 0 0.00 Client requests received, subject to 411 errors […]
我试图分析varnishlog的输出,但我很难find一个很好的参考什么数据是由各个标签呈现 – 特别是,我在StatSess标签insteresed,因为我怀疑它持有大部分我感兴趣的信息(例如,会话是否导致caching命中?有多less字节被服务?等)。 我的总目标是确定每个主机caching的使用情况(我有多个主机名/ varnish实例后面的域) 有人能指出我对这些标签有用的词汇的方向,或给我任何提示,我可能会得到我想要实现的结果吗? 提前致谢。
我使用清漆来加快我的网站,但我注意到,因为它在技术上是一个反向代理,所有的IP显示为127.0.0.1 – 我已经通过使用HTTP_X_FORWARDED_FOR ,但这只是修复PHP程序,如我的论坛。 我已经读过类似的问题,在这里人们有问题试图做“否认”在htaccess,它不工作,因为清漆。 在我的研究之后,许多解决scheme表明阻止IP在清漆级别的方法是可行的,不幸的是,这也不起作用。 我已经尝试过Apache的mod_rpaf尝试在htaccess级别阻止IP,但是这也没有做任何事情。 这里是我的清漆代码试图阻止一个示例IP: sub vcl_recv { if (client.ip ~ blacklist) { return (synth(403)); } } 而现在的acl黑名单 acl blacklist { "1.1.1.1"; } 有了这个设置,1.1.1.1仍然能够访问网站,并没有带到我的403页面。 澄清,我使用清漆4,所以“错误403”不再兼容,所以你需要使用return 。 有什么我做错了吗? 其他人是否也需要在清漆水平上阻止IP? 有什么build议么? 提前致谢。
我想configuration我的清漆服务器根据主机名具有不同的.vclconfiguration。 我有wordpress和magento在同一个服务器apache +清漆4.1.2 这是我试图创build的default.vcl,但是我需要为wordpress包含一个特定的vcl? vcl 4.0; # Default backend definition. Set this to point to your content server. backend default { .host = "127.0.0.1"; .port = "8888"; } sub vcl_recv { # Happens before we check if we have this in cache already. # # Typically you clean up the request here, removing cookies you […]