Size: a a a

2021 April 22

P

Pavel in nginx_ru
из LUA периодически опрашиваешь ендопинт, что знает про лимиты
и вычисляешь все что надо
источник

ВМ

Владимир Муковоз... in nginx_ru
надо общий лимитер на основе логов собранных и слитых в один файл грубо говоря
источник

ВМ

Владимир Муковоз... in nginx_ru
это не похоже на готовое решение), я уж тогда буду писать это на чём-то побыстрее луа))
источник

P

Pavel in nginx_ru
ну так сливай и вычисляй в отдельно сервисе\кроне\скрипте.
и дай возможность пользоваться результатом вычислений
источник

ВМ

Владимир Муковоз... in nginx_ru
понятно что так можно, я пока щупаю почву есть ли готовые решения, было бы глупо писать своё если есть готовые)
источник

P

Pavel in nginx_ru
поищи готовое решние поверх lua.
они есть. в  том-же kong
источник

P

Pavel in nginx_ru
например?
если мы не говорим про кастомные расширения nginx (даже хз какой там порог входа) то что?
источник

ВМ

Владимир Муковоз... in nginx_ru
мы вообще не говорим про расширения nginx
источник

ВМ

Владимир Муковоз... in nginx_ru
мы вообще тут не говорим про nginx, мы говорим тут про анализатор логов nginx
источник

ВМ

Владимир Муковоз... in nginx_ru
мне не надо чтобы nginx сам анализировал, если бы надо было я бы взял рейтлимит стандартный
источник

ВМ

Владимир Муковоз... in nginx_ru
мне нужно решение которое позволит анализировать логи сразу с несокльких nginx и по ним  принимало бы решение кто превышает лимит
источник

AN

Anton Noginov in nginx_ru
Например:
Делай лимит через auth_request с опросом какого мемкэша.
Устанавливаешь туда маркер с протуханием по времени, устанавливаешь на основе агрегации логов - хоть прям самим сислогом.

Например: пишешь на lua синхронизацию диктов между инстансами, и лимитируешь по дикту.
источник

P

Pavel in nginx_ru
так я думал у тебя как раз проблема не анализа логов, а как сделать лимитнг общий на тонну nginx b тону endpoint
источник

AN

Anton Noginov in nginx_ru
А, еще можешь взять столь любимый неофитами fail2ban
источник

ВМ

Владимир Муковоз... in nginx_ru
идея понятна, сейчас копну, но я вот думаю, а не замедлит ли мне это работу nginx.?)) Вариант с сторонним модулем который бы курил сборный лог со всех nginx абсолютно не грузит инстанты nginx, да и банить наглецов я всё равно буду не через nginx, а есть на это клоудфлер)
источник

P

Pavel in nginx_ru
если nginx стоит больше чем на одной тачке - получаешь достаточно большую нагрузку на сеть (ибо регистрируешь каждый запрос) но в среднем кажется отличный вариант.

но я бы состояние лимитеров в памяти держал
источник

ВМ

Владимир Муковоз... in nginx_ru
он не умеет рейтлимит
источник

ВМ

Владимир Муковоз... in nginx_ru
если я конечно чего-то не упускаю
источник

AN

Anton Noginov in nginx_ru
Это оно и есть.
У тебя сторонний процесс считает статистику, и ставит галку - пускать/не пускать. А nginx только ходит в мемкэш и смотрит на наличие галки. +1 запрос к сессии.
источник

P

Pavel in nginx_ru
а есть понимание какую нагрузку нужно держать?
источник