質問

I'm using varnish to cache our pages. When we get a 503 -- which happens a little too often -- I'd like to put some sort of page tracking on there. I'd like to place the GA code in there. I can't seem to find any instance of anyone else doing this. Has anyone done this? Is there some sort of T&C violation in doing this?

役に立ちましたか?

解決

For Varnish you can use vcl_error to include your own responses (that have the Google Analytics code).

Edit: I have not tested any of these. They are just examples.

An example:

sub vcl_error {
    set obj.http.Content-Type = "text/html; charset=utf-8";

    if (obj.status == 503) {
        synthetic {"
<html>
<head>
<title></title>
</head>
<body>
<h1>Error</h1>
<p>Something</p>
<!-- ANALYTICS CODE -->
</body>
</html>
        "};

        return(deliver);
    }
}

Alternatively you can add your own pages from the file system by using vmod (which is included as standard with version 3.*+).

# Add this to the top of your config
import std;

# vcl_error
sub vcl_error {
    set obj.http.Content-Type = "text/html; charset=utf-8";

    if (obj.status == 503) {
        set obj.http.error503 = std.fileread("/path/to/errors/503.html");
        synthetic obj.http.error503;
        return(deliver);
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top