custom 503 page
Michael Alger
varnish at mm.quex.org
Thu Oct 14 06:12:54 CEST 2010
On Wed, Oct 13, 2010 at 05:51:32PM -0400, alexus wrote:
> I need to create a custom 503 page from default.vcl, so that I can
> let my user know that I'm temporary unavailable instead of
> standard varnish's page.
If you're getting an error page from Varnish itself (with the
request XID) then you'll want to modify or add your own vcl_error()
and use the "synthetic" command to construct a response page. The
default VCL shows how to do this, but essentially:
sub vcl_error {
set obj.http.Content-Type = "text/html; charset=utf-8";
synthetic {"
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
...
</html>
"};
return (deliver);
}
You can also substitute a synthetic response in vcl_fetch() in
response to certain error codes from the server, if desired. I
personally keep restarting failed requests until I hit the limit at
which point vcl_error() is called to deal with it, but if you only
have one backend it may be cleaner to issue the nice error response
from vcl_fetch. This is assuming it's the server's error message
you're wanting to hide.
More information about the varnish-misc
mailing list