有没有办法configuration清漆或任何其他caching反向代理服务器,当后端失败时从caching中提供页面? 目前,如果后端出现故障, 503 Service Unavailable错误将返回给浏览器。 如果访问者在修复后端时看到caching版本而不是错误页面,我宁愿这样做。
我的设置:
[清漆(公共IP)] <===> [路由器] <===> [networking服务器(私人IP)]
PS:我只有一个后端Web服务器。
从理论上讲,如果一个对象已经过时,你不希望它由caching服务 – 如果它不是过时的,过期应该设置得更长一些。
另一方面,Varnish认识到理论和实践的分歧,所以VCL中的grace指令处理这个案例,以及在该页面中logging的更平淡无奇的用法。
是的,有鱿鱼。 马克诺丁汉在雅虎工作,看到这个优秀的博客文章的所有细节。
有一件事,Squid 3.0是对Squid代码库的一个相当大的重写,所以不要盲目部署最新版本的Squid,而是首先检查哪个版本的Squid具有这个function。 它可能不会被移植到3.0。
我认为womble是正确的关于Varnish并通过Varnish'VCL做这个,但是我从来没有configurationVarnish这样的东西,所以我不能说。
2.1.0引入了与grace配合使用的圣徒模式: http : //varnish-cache.org/wiki/VCLExampleSaintMode
一个应该工作的黑客:你可以不时生成一个caching页面,并configuration一个503处理程序来使用caching页面。
根据需要添加/修改您的conf:
ErrorDocument 503 /my_cached_page.html
清漆具有一个称为“宽限期”的function,允许您分配一个宽限期,在TTL过期后对象将被保留。 如果您的后端停止运行,则清漆会显示(陈旧的)对象。
一探究竟:
是的; stale-if-error / max-stale在Squid 2.7和2.HEAD中,但不是3.x(还)。