Назад | Перейти на главную страницу

Large Varnish VCL не загружается

Я использую списки ACL Varnish для блокировки нежелательных клиентов по IP, и по мере роста списка блокировки / ACL время компиляции VCL сильно увеличилось. На днях я добавил еще 25K IP-адресов для блокировки, и Varnish больше не загружает VCL, а вместо этого отвечает:

«Ошибка команды с кодом ошибки 400» «Ошибка связи CLI (hdr)».

Кто-нибудь знает, как использовать Varnish для блокировки множества IP-адресов?

Я не хочу использовать iptables, так как хочу ответить 403 error страница.

Списки управления доступом в черный список сейчас содержат около 190 тыс. Записей, большинство из которых являются одиночными IP-адресами (т.е. / 32, а не диапазонами).

/usr/bin/varnishadm -S /etc/varnish/secret -T localhost:6081 vcl.load file_default.vcl_time_1542634958 /etc/varnish/default.vcl
Command failed with error code 400
CLI communication error (hdr)

real    33m20.101s
user    0m0.004s
sys 0m0.000s

Код и этап компиляции, похоже, работают, поскольку компиляция без загрузки не вызывает ошибки.

/usr/sbin/varnishd -C -f /etc/varnish/default.vcl

real    34m50.554s
user    34m33.124s
sys 0m15.332s

Увеличение cli_buffer (размер буфера для ввода команды CLI; по умолчанию 8 КБ) и / или cli_limit (максимальный размер ответа CLI; по умолчанию 128 КБ) параметры, вероятно, решат эту проблему.