reprogl

Форк
0
/
default.vcl 
61 строка · 1.4 Кб
1
vcl 4.0;
2

3
import std;
4

5
backend default {
6
    .host = "gopher";
7
    .port = "8080";
8
}
9

10
sub vcl_recv {
11
    if (req.method == "POST" && req.url == "/purge-cache") {
12
        if (req.http.x-ban-token == std.getenv("BAN_TOKEN")) {
13
            std.ban("req.http.host ~ .*");
14
        } else {
15
            return (synth(403, "Forbidden"));
16
        }
17
    }
18

19
    if (req.http.Cookie) {
20
        if (req.http.Cookie ~ ".*(^|;| )?session=([a-zA-Z0-9\-_=]+)( |;|$)?.*") {
21
            set req.http.X-Varnish-Session = regsub(req.http.Cookie, ".*(^|;| )?session=([a-zA-Z0-9\-_=]+)( |;|$)?.*", "\2");
22
        }
23

24
        if (!(req.url ~ "^/login" || req.url ~ "^/oauth")) {
25
            unset req.http.Cookie;
26
        }
27
    }
28
}
29

30
sub vcl_backend_response {
31
    if (beresp.http.Surrogate-Control ~ "ESI/1.0") {
32
        unset beresp.http.Surrogate-Control;
33
        set beresp.do_esi = true;
34
    }
35
}
36

37
sub vcl_hash {
38
    hash_data(req.url);
39
    if (req.http.X-Varnish-Session && (
40
        req.url == "/_fragment/auth-navigation" ||
41
        req.url == "/_fragment/menu-auth" ||
42
        req.url ~ "^/_fragment/comments/")
43
    ) {
44
        hash_data(req.http.X-Varnish-Session);
45
    }
46

47
    if (req.http.Via && (
48
        req.url == "/robots.txt" ||
49
        req.url == "/sitemap.xml")
50
    ) {
51
        hash_data(req.http.Via);
52
    }
53

54
    return (lookup);
55
}
56

57
sub vcl_deliver {
58
    unset resp.http.Age;
59
    unset resp.http.Via;
60
    unset resp.http.X-Varnish;
61
}
62

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.