Рейтинг:1

Регистрация IP-адресов с ограничением скорости nginx в определенный файл

флаг in

Я ищу подход для синхронизации IP-адресов с ограниченной скоростью между узлами nginx. Я хочу регистрировать эти IP-адреса, а затем помещать их в базу данных и разрабатывать агент для обновления заблокированных IP-адресов в файлах конфигурации nginx.

Моя задача - найти способ ограничить IP-адреса nginx с помощью 429 код состояния.

Итак, возможно ли регистрировать IP-адреса с ограниченной скоростью в определенном файле в nginx или вы предлагаете какой-либо другой подход для синхронизации IP-адресов с ограниченной скоростью между узлами?

Рейтинг:0
флаг cz

Да, вы можете сделать это, и подобный пример есть даже в документация по nginx.

access_log директива также принимает необязательный если= параметр, который оценивает переданные ему переменные и регистрирует только в том случае, если результат не равен 0 или пустой строке. В сочетании с тем, что вы можете иметь более одного access_log на уровне вы можете войти по-разному в зависимости от ваших потребностей.

Однако сначала вам понадобится карта составить карту Статус HTTP-ответа вас интересует переменная. Помните, что карта должен находиться за пределами сервер блокировать.

карта $статус $rate_limited {
    по умолчанию 0;
    429 1;
}

Затем в соответствующем сервер блок вы объявите свой access_log.

access_log /var/log/nginx/rate_limited.log вместе if=$rate_limited;

Помните, что любое появление access_log на одном уровне переопределяет все остальные с более высоких уровней, поэтому вы захотите скопировать (или лучше, включать) access_log директивы более высоких уровней, которые вы также хотите использовать.

Little Apocrypha avatar
флаг in
Спасибо! Конечно, я должен определить разные форматы access_log. Спасибо за ваши полезные советы :)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.