当您需要在Varnish中使用维护站点时,默认方法是通过调用error 503
通过sub vcl_error()来提供它。
这里的问题是,当您在维护站点中需要js / css / images并且它们托管在同一个URL上时,所有这些文件也会在503中结束。
有没有办法按文件扩展名排除特定文件或文件?我尝试了几种方法,例如在错误503周围放置一个if()语句,如果文件扩展名不是png,jpg,js,css,则输入它。但它会导致超时。
大部分时间我一直在阅读,将文件放在例如如果需要,Cloudflare或使用base64编码的图像和内联css / js。
这些是唯一的方法吗?
答案 0 :(得分:1)
他们是对的,base64编码的图像和内联css,js等...是最安全的选择。
等等。
顺便说一句,你不必将html文件放在vcl中,你可以使用这个语句:synthetic std.fileread("/etc/varnish/error.html");
您需要的只是来自设计部门的单个内联html。
答案 1 :(得分:0)
好的,我找到了一个适合我的解决方法。
在代表维护站点的HTML代码中,我使用了包括后端端口的URL。所以这些请求不会影响Varnish本身,而是Apache服务器。