我想请问某人的帮助。 我浏览了很多包含Varnish教程和示例VCL文件的页面,但是我找不到与为MagentoconfigurationVarnish相关的任何内容(至less它们不能正常工作)。 我发现所有的手册在启动Varnish的时候都会抛出很多错误,而且它似乎适合旧版本。 (也没有任何magento模块PageCache&Varnish Extension不适合我,因为我认为Varnish本身并不正确) 我的问题: 1.我得到Varnish来caching前端,但是几乎打破了我的表单,支付模块,新闻订阅等等的所有function。 2.我发现改变“sub vcl_recv”中的一个单词会改变一切。单词是:return(lookup)。 这是我的“sub vcl_recv”的代码: sub vcl_recv { if (req.http.x-forwarded-for) { set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip; } else { set req.http.X-Forwarded-For = client.ip; if(server.ip ~ a168_144_38_181){ set req.backend = b168_144_38_181; } } if (req.url ~ "^/images") { unset req.http.cookie; } if (req.url ~ "^(/index.php)?/(admin|customer|checkout|add|product_compare|switch|___store|referer|contact|chat|payone|sendfriend|review|api|NOCACHE|post|robots.txt|j2tajaxcheckout|cron.php|varnish)") { […]
我正在寻找将SSL添加到一些网站。 我目前的设置是varnish – > nginx – > python wsgi服务器。 清漆坐在前面,caching静态和dynamic内容。 nginx服务器从磁盘提供静态媒体,并将其他请求代理回python应用程序。 它像一个魅力。 我已经尝试了两种不同的方法来添加SSL,并且都有它们的缺点: 请求在443> stunnel> varnishcaching> nginx> python wsgi应用程序 请求在443> nginx / ssl> varnish cache> python wsgi app 第一种方法有继续caching静态内容的好处。 主要缺点是我不知道如何将“非https”stream量redirect到安全版本,因为一旦stream量到达nginx,它就不encryption。 第二种方法也不错,唯一的缺点是清漆不再处于静态内容的前面,因此不能caching。 你们有什么感想? 有任何想法吗?
我们在亚马逊的Linux上运行Varnish 3.0.2,效果很好。 对于大多数内容页面,我们有48小时的ttl,对于图像,PDF等,我们有更长的时间。 这个周末我们已经把后台调低了一些维护,所以我在本周早些时候把ttl提高到了5天。 我曾经以为caching中的任何东西都能持续使用5天,但是我们很失望,今天早上我们检查了varnishstat ,caching几乎完全是空的,清漆还在提供“找不到页面”的信息。 我知道这不是Varnishdevise的目的,但是为什么当后端closures时会重置caching? 而我又如何防止下次呢? 更新2012年6月11日 :在查看/ var / log /消息之后,我每隔3小时查看一次: Jun 9 03:56:31 idea-varnish varnishd[1128]: Manager got SIGINT Jun 9 03:56:33 idea-varnish varnishd[6708]: Platform: Linux,3.2.18-1.26.6.amzn1.x86_64,x86_64,-smalloc,-smalloc,-hcritbit Jun 9 03:56:33 idea-varnish varnishd[6708]: child (6709) Started Jun 9 03:56:33 idea-varnish varnishd[6708]: Child (6709) said Child starts 我想这是服务器崩溃,并擦除内存中的所有对象。 我只刚刚安装了-debuginfo rpm,但不确定实际上会显示更多。 我想我们可以在预定的停机时间切换回基于磁盘的存储? 或者像这样的崩溃擦拭呢?
我想直接在我的应用程序中使用etagcaching/validation我的应用程序中的eTag。 如何将“If-None-Match”标题路由到后端? 看起来,Varnish默认情况下是删除这个标题。
我在机器上的default.vcl varnish文件上激活了当前configuration,以平衡其他两台机器的负载(另外两台机器也具有清漆激活function)。 我的意图是让这个服务器只做负载平衡,其他机器做处理,也自己caching。 我的问题是,即使在configurationtesting(甚至没有压力testing或任何东西,只是几分钟的请求),我得到了上师冥想错误,必须重新启动清漆。 这是负载平衡服务器的default.vcl: backend vader { .host = "app1.server.com"; .probe = { .url = "/"; .interval = 10s; .timeout = 4s; .window = 5; .threshold = 3; } } backend malgus { .host = "app2.server.com"; .probe = { .url = "/"; .interval = 10s; .timeout = 4s; .window = 5; .threshold = 3; […]
我正在使用HAProxy来平衡一堆PHP服务器,并且现在要在场景中引入Varnish。 如果app-login cookie不可用,HAP发送请求给Varnish,Varnish在这里除了服务请求(Cache HIT)或者把它发回HAP之外的Cache MISS,HAP然后select一个PHP服务器和资源被取出并由HAP通过清漆送达客户。 我有以下configuration文件。 这里我不明白2件事。 在高速caching未命中的情况下清漆给请求返回到HAP,检查应用程序logincookie,没有find它,并将其发回清漆(结束less循环的情况),我可以让Varnish设置一个cookie,并使HAP检查并在此基础上selectPHP服务器后端(build议欢迎)。 其次,如何在MISS中获取资源的时候通过HAP获取资源,然后将其发送给客户端,这样Varnish最终可以build立caching。 请让我知道是否有一些关键的东西在这里错过了。 提前致谢 configuration文件 #BE for Varnish is HAP in this machine backend default { .host = "127.0.0.1"; .port = "80"; } sub vcl_recv { # HAP sends request to Varnish iff app-login cookie is not available # Varnish doesnt have to do anything here except to […]
我正在运行一个负载平衡到几个后端的光油实例。 我想获得caching命中,caching未命中的统计数据,为每个后端命中而不是总数,如果服务器,但varnishstat似乎没有这个信息。 你们知道获得这个统计数据的方法吗?
的背景 我们在CF / Apache2后端服务器前运行一个Varnishcaching服务器。 清漆盒每两秒运行一次健康检查探针,如下所示: probe healthcheck { .url = "/probe.cfm"; .timeout = 5s; .interval = 2s; .window = 10; .threshold = 5; .initial = 5; .expected_response = 200; } backend web1 { .host = "<backend ip>"; .port = "80"; .probe = healthcheck; } probe.cfm这样做: <cfoutput> <!doctype html> <!–[if lt IE 7]> <html class="no-js ie6 […]
我需要varnish的帮助,我有一个varnishconfiguration文件作为default.vcl。 从varnishstat的输出中我可以看出命中率是相当高的。 我也检查了varnishtop -i txurl,看看后端有什么要求。 现在,问题是在HTTP头X-Cache标题丢失和其他清漆头。 从default.vcl有一个选项来删除这些标题但我需要帮助,我怎么把这些标题保存在清漆本身的http响应。 我的default.vcl文件 backend default { .host = "127.0.0.1"; .port = "81"; } # admin backend with longer timeout values. Set this to the same IP & port as your default server. backend admin { .host = "127.0.0.1"; .port = "81"; .first_byte_timeout = 18000s; .between_bytes_timeout = 18000s; } # add […]
在我们的清漆configuration中,我们有一个定义如下的vcl_fetch函数: if (beresp.ttl > 0s) { /* Remove Expires from backend, it's not long enough */ unset beresp.http.expires; /* Set the clients TTL on this object */ set beresp.http.cache-control = "max-age=900"; /* Set how long Varnish will keep it */ set beresp.ttl = 1h; /* marker for vcl_deliver to reset Age: */ set beresp.http.magicmarker = […]