Как игнорировать большие куки в лаке - PullRequest
0 голосов
/ 01 ноября 2019

Я хочу игнорировать запросы с большим размером куки. У нас есть несколько запросов на лак из-за "BogoHeader Header too long: Cookie: xyz". Как это можно сделать в VCL? Я не нашел ни одной функции len, length или strlen в VCL, я знаю, что это можно сделать в фазе vcl_rcev.

1 Ответ

1 голос
/ 01 ноября 2019

Функция strlen() не поможет решить вашу проблему. Varnish отклоняет запрос из-за большого заголовка Cookie до выполнения vcl_recv. Если вы не хотите, чтобы эти запросы были отклонены, вам нужно проверить и настроить некоторые параметры времени выполнения: http_req_hdr_len, http_req_size, http_resp_hdr_len и т. Д.

В любом случае, если вы все еще заинтересованыв функции strlen() было бы тривиально добавить ее в std VMOD, но такой поддержки в настоящее время не существует. Вы можете рассмотреть возможность использования существующего VMOD, включая такие утилиты, как strlen() (или реализовать его самостоятельно), но это, вероятно, слишком много работы. Наконец, вы можете рассмотреть возможность использования хакерского подхода с использованием только VCL и регулярного выражения:

if (req.http.Cookie ~ "^.{1024,}$") {
    ...
}
...