我已经配置了一个清漆实例,以便在无法访问后端服务器而不是默认的guru冥想页面时提供自定义维护页面。提供维护页面的子例程与此类似:
sub deliver_maintainance_page
{
set obj.http.Content-Type = "text/html; charset=utf-8";
synthetic {"
<!DOCTYPE html>
<html dir="ltr">
...
</html>
"};
return(deliver);
}
缺少的html(点)还包括使用数据uri方案(http://en.wikipedia.org/wiki/Data_URI_scheme)嵌入的图像和字体资源。文件的总重量约为208 kb。
这真的是提供自定义维护页面的最佳方式吗?
答案 0 :(得分:1)
我为自定义维护页面做了两件事。我使用CDN或图像主机(请参阅Amazon S3,CloudFlare,Akamai,Imgur等)来托管页面上的所有图像(对于我推荐CDN的大型网站,CloudFlare有免费计划)。然后我将页面的HTML移动到外部文件中,并使用内置于Varnish中的std.fileread
。 E.g:
import std;
sub deliver_maintainance_page
{
set obj.http.Content-Type = "text/html; charset=utf-8";
synthetic std.fileread("/var/www/errors/503.html");
return(deliver);
}
这会清理您的VCL文件并减少页面重量(不再有内嵌图像)。