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

ограничения скорости lighttpd на каталог

Я создаю сайт с большим количеством мелких инструментов. Один из них - это инструмент, который использует cgi-скрипт Python, который взаимодействует с набором инструментов естественного языка (nltk), который требует интенсивного использования диска и процессора. У меня есть другие менее интенсивные услуги.

На стороне клиента их скорость ограничена регулированием JavaScript. Злоумышленник или глупый пользователь, создающий бота, может устанавливать соединения напрямую. Я хотел бы предотвратить это на как можно более низком уровне, но мне нужно, чтобы это было для каждого каталога (скрипты cgi находятся рядом с файлами index.html).

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

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

Как я могу реализовать это на сервере lighttpd в Debian?

Чтобы напрямую ответить на ваш вопрос, взгляните на ModEvasive и Формирование трафика от Lighttpd.

В качестве альтернативы / в дополнение к тому, что вы упомянули, вы должны иметь возможность ограничивать количество подключений в секунду, используя правила iptables.

И, наконец, рассмотрите возможность использования какого-либо механизма очереди приложений (сообщений). Таким образом, независимо от того, сколько запросов вы получите к конечной точке веб-интерфейса / API, очередь будет гарантировать, что одновременно будет выполняться только желаемое количество параллельных задач nltk.