我目前有一个configuration设置如下: 负载均衡器清除caching(x2服务器)到Web节点(x3服务器)(Apache,PHP) 我现在已经在varnish中设置了req.http.X-Forwarded-For = client.ip ,它应该把IP地址传递给Apache节点。 Apache节点也运行mod_rpaf,这将有助于服务器使用X-Forward-IP而不是VarnishcachingIP。 这部分对我来说很好,但我遇到了另一个问题。 目前,只有负载均衡器正在接收请求,并为页面请求清漆caching。 这意味着Apache只loggingLoad Balancer的IP地址。 但是,负载均衡器也会将请求中的X-Forwarded-For标头发送给Varnish。 我如何将这个头文件传递给Apache服务器?
这些是我的宽限期设置(/etc/varnish/default.vcl) sub vcl_recv { …. set req.grace = 360000s; … } sub vcl_fetch { … set beresp.grace = 360000s; … } 我使用localhost和nodejs作为服务器testing了Varnish。 我开始本地主机,该网站起来了。 然后,我断开服务器,并在2分钟内网站断开连接。 它说: 错误503服务 不可用的服务 不可用的大师 冥想:XID:1890127100 优化caching服务器 你能告诉我可能是什么问题吗? sub vcl_fetch { if (beresp.ttl < 120s) { ##std.log("Adjusting TTL"); set beresp.ttl = 36000s; ##120s; } # Do not cache the object if the […]
我有一些关于清漆configuration的问题。 我有这个简单的configuration文件: backend default { .host = "127.0.0.1"; .port = "80"; } sub vcl_recv { if (req.http.Host == "192.168.1.100") { set req.http.Location = "http://example.com" req.url; error 750 "Permanently moved – TEST"; } } sub vcl_error { if (obj.status == 750) { set obj.http.Location = req.http.Location; set obj.status = 301; return(deliver); } } 题: (1)我跟着这个例子: set […]
tail -f /var/log/syslog – May 1 14:45:11 server varnishd[1662]: Child start failed: could not open sockets May 1 14:45:17 server varnishd[1688]: Child start failed: could not open sockets – 漆: root@server:~# varnishd -V varnishd (varnish-2.1.4 SVN ) Copyright (c) 2006-2009 Linpro AS / Verdens Gang AS – / etc / default / varnish中的更改 # Should […]
我已经安装了清漆,我认为它工作正常(不知道是否重要,但我使用iptables重新路由方法路由端口incoming:80 > varnish:8080 > apache:80 无论如何,在varnishstat我看到一个相当高的Hitrate平均水平(60-80%),我正在工作,但我不清楚varnishstat提供的所有统计数据 特别是以下后端统计信息: 380 0.00 0.26 Backend conn. success 10122 15.00 6.85 Backend conn. reuses 267 0.00 0.18 Backend conn. was closed 10391 15.00 7.04 Backend conn. recycles 我读过一篇名为“ Varnishstat for dummies ”的博客文章,概述了varnishstat的许多细节(我推荐给初学者),但是并没有涉及这些Backend的统计数据。 随意在这里解释或链接到我错过了资源:) 谢谢!
我如何去自动将typeswww.example.com的任何链接redirect到example.com。 我想这样做的所有链接,点击清漆实例(所以我不必单独定义所有域的命中服务器的值)。 我尝试使用以下内容: if(req.http.host ~ "^www\.(.+)$"){ set req.http.host = regsub(req.http.host, "^www\.", ""); } 它的工作原理,但问题是它是右后端,但它不是redirect。 我从这里明白: https : //www.varnish-cache.org/vmod/redirect你可以redirect到一个url,但我不知道如何从清漆得到“完整”的url去除www和redirect。 任何帮助,将不胜感激! 非常感谢! 贾森
我想根据当前date设置TTL。 http://site.com/2011/03/应该有5天TTL。 http://site.com/2011/04/应该有1天为TTL。 当前date:2011年4月15日 这在清漆中可能如何? 谢谢
我的任务是提高页面的服务时间,为一个相当大的部署wordpress多站点。 我正在考虑使用清漆进行内容的全页面caching,并使用ESI的能力来包含与用户login状态相关的dynamic内容,同时还通过使用清除清除列表来清除应用程序中的caching失效。博客的ID或其他一些包含文章ID和/或用户ID的自定义标题。 我想知道是否有人想过通过ESI包含多个页面片段的方法,同时将它们分组在后端的单个响应中(例如,我们必须在菜单中显示用户的名称,在侧边栏中显示用户的自定义小部件,该页面的其余部分是静态的,并通过清漆进行cachingESI命令我向后端发出两个请求,以便检索这两个片段,并将它们放在适当的位置,而在后端,我可以轻松地生成HTML代码一次运行并返回到清漆进行处理)
我们运行几个不同的后端清漆。 我目前正试图debugging一些特定于后端的行为,但不能看到如何过滤。 有没有命令行切换?
与Varnish返回错误的后端有问题。 我有几个后端在Apache的虚拟主机上监听端口8080到8095。 我configuration了我的Varnish后端,如下所示: acl purge { "localhost"; "192.168.0.1"; } backend default { .host = "192.168.0.1"; .port = "8094"; .connect_timeout = 20s; #600s; .first_byte_timeout = 20s; #600s; .between_bytes_timeout = 20s; #600s; } backend default_mobile { .host = "192.168.0.1"; .port = "8093"; .connect_timeout = 20s; #600s; .first_byte_timeout = 20s; #600s; .between_bytes_timeout = 20s; #600s; } backend secondary […]