Непонятен вообще смысл использования нескольких nginx, теоретический
выигрыш сомнителен, а с учетом указанной проблемы...
Поставь 200 воркеров если очень хочется. И все решится одним
стандартным правилом в конфиге. А так... SNMP? и куча
логики-динамики-скриптов? И на чем ограничивать?
Nginx используется для отдачи файлов на файлообменнике. Для каждого
жесткого диска запущен свой nginх.
Собственно вопросы:
- Есть какая-либо возможность отследить, кто именно качает файл в
данный момент? Получить актуальный список качающих.
- Можно ли узнать, сколько подключений в сумме у данного клиента? С
целью наложить ограничение коннектов на все nginx-ы сразу. Если на
nginx-е стоит один коннект с одного IP, это значит, что клиент может
качать с одного винта в один поток. Общее число коннектов равно общему
количеству винтов (т.к. каждый винт обслуживает свой nginx). Хотелось
бы ограничить пользователя только одним коннектом со всех винтов.
количество nginx-ов будет как минимум не меньше количества аппаратных
серверов:) а их больше одного.
200 воркеров по-моему ставить нерезонно, хотя я могу ошибаться.
Файлы отдаются по хттп протоколу, как на всех обменниках. И надо бы
сделать тольковые ограничения на количество сессий, но пока не знаю
как. Если бы был модуль типа mod_status у apache, чтобы вывод можно
было распарсить и получить нужные данные.
Также есть вариант с записыванием сессий в базу данных, но ведь nginx
после завершения загрузки или обрыве связи не сможет удалить запись.
А если попробовать добавить обработку post_action ?
Подскажите, если можно, метод по ограничению коннектов сразу на
нескольких серверах.