我需要清除或禁止已被不安全请求修改的caching。 我发现一个解决scheme,似乎工作清漆3.0; 但是我在清漆4上。看来这不再是正确的语法。 清除POST或PUT上的清漆 sub vcl_recv { if ( req.request == "POST" || req.request == "PUT" ) { ban("req.url == " + req.url); return(pass); } } 这给我一个错误 Jun 26 17:43:21 test varnishd[2127]: Symbol not found: 'req.request' (expected type BOOL): Jun 26 17:43:21 test varnishd[2127]: ('/etc/varnish/default.vcl' Line 13 Pos 10) Jun 26 17:43:21 test varnishd[2127]: if […]
Varnish 4圣徒模式模块的文档指出,达到黑名单对象的阈值时,服务器将被标记为不健康。 我设置了一个单一的后端和门槛0(也试过1)的configuration: new saint1 = saintmode.saintmode(server1, 0); new vdir = directors.round_robin(); vdir.add_backend(saint1.backend()); 我也有处理不健康的后端的逻辑: if (!std.healthy(req.backend_hint)) { if (obj.ttl + obj.grace > 0s) { return (deliver); } } else { if (obj.ttl + 30s > 0s) { return (deliver); } } 当我有一个错误的页面,似乎使用逻辑为一个健康的后端。 它将在到期后显示30秒的页面,不再显示。 难道圣人不应该把后端标记为不健康,所以需要更长的时间?
清漆是否可能向浏览器发送“Cache-Control:no-cache,no-store,must-revalidate”caching控制响应,而varnishcaching响应。 情景是这样的。 后端发送caching控制:Cache-Control:no-cache,no-store,must-revalidate 清漆应该caching响应。 浏览器不应该caching内容,所以在清漆回应的浏览器应显示“caching控制:caching控制:无caching,无存储,必须重新validation” 我已经尝试使用Cache-Control:no-cache,no-store,必须在set beresp.http.Cache-Control中重新validation,但是这会导致varnish不caching响应。 下面给出了使用的vcl_backend_response。 sub vcl_backend_response { if (bereq.url == "/") { unset beresp.http.expires; unset beresp.http.set-cookie; set beresp.ttl = 3600s; set beresp.http.Cache-Control = "max-age=0"; if (beresp.status >= 400 && beresp.status <= 599) { set beresp.ttl = 0s; } } } 任何帮助,高度赞赏。
我希望清漆下载文件到caching而发送到客户端。 从我所看到的,它首先下载,然后发送文件,并与非常大的文件,是缓慢的。 (抱歉英文,我正在使用在线翻译。)
当一个页面caching在清漆,内部是否存储在磁盘或内存页面? 如果单个服务器无法存储所有caching页面,它是否具有群集,或者您select要caching哪个清漆服务器? 即它是在应用程序级完成的?
最近,我通过调整default.vcl文件解决了我的服务器中的一个问题。 问题是与WordPress的…另一个人也有这个问题,并问我是否可以显示我的默认VCL文件给他…是安全的发布一个论坛?
我有清漆运行,我想看看通常发生的http响应代码。 我用了: varnishtop -i TxStatus 但是,我正在努力弄清楚左边的数字是什么意思? 请求数是多less? list length 7 1322.16 TxStatus 200 60.43 TxStatus 302 8.67 TxStatus 304 3.14 TxStatus 500 2.96 TxStatus 404 0.80 TxStatus 301 0.56 TxStatus 403
我有一个varnishlog过程像这样在后台运行: nohup varnishlog -c -m TxStatus:503 >/root/varnishlog.txt & 但由于缓冲,我不能完全看到最后的请求和响应,直到发生新的错误。 有没有办法刷新当前缓冲区输出? 杀varnishlog进程没有帮助,我只是松散的最后login的请求。 也许有更好的方法来logging由varnish返回的错误503?
我正在尝试configurationvarnish(接下来是: default_varnish3.vcl_.txt ) [alexus@wcmisdlin02 ~]$ rpm -q varnish varnish-3.0.3-1.el5.centos.x86_64 [alexus@wcmisdlin02 ~]$ 我正在通过浏览器(页面加载正常)进行第一次打击,然后通过在本地计算机上进行curl来再次执行此操作: [alexus@wcmisdlin02 ~]$ curl -I alexustest:6081 HTTP/1.1 200 OK Server: Apache/2.2.15 (Red Hat) X-Powered-By: PHP/5.3.3 Cache-Control: public, max-age=1800 Last-Modified: Thu, 11 Apr 2013 19:27:15 +0000 Expires: Sun, 11 Mar 1984 12:00:00 GMT Vary: Cookie,Accept-Encoding Content-Type: text/html; charset=utf-8 Date: Thu, 11 Apr 2013 19:27:16 GMT […]
这里是我的varnishconfiguration的一部分: 后端(&S)&导演(S): # cat backend-app02b.vcl backend app02b { .host = "192.168.52.153"; .port = "80"; .connect_timeout = 1s; # .first_byte_timeout = 5s; .between_bytes_timeout = 2s; .probe = probe1; } # cat backend-app02a.vcl backend app02a { .host = "192.168.52.152"; # .port = "http"; .port = "80"; .connect_timeout = 1s; # .first_byte_timeout = 5s; .between_bytes_timeout = 2s; .probe […]