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

Остановите слишком много клиентов

Я пытаюсь подключить stunnel и haproxy для пересылки https-соединений на некоторые внутренние серверы.

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

2010.05.05 11:23:29 LOG7[3498:3086792368]: https accepted FD=510 from 10.195.158.225:42722
2010.05.05 11:23:29 LOG7[3498:3035233168]: https started
2010.05.05 11:23:29 LOG7[3498:3035233168]: FD 510 in non-blocking mode
2010.05.05 11:23:29 LOG7[3498:3035233168]: TCP_NODELAY option set on local socket
2010.05.05 11:23:29 LOG7[3498:3035233168]: Waiting for a libwrap process
2010.05.05 11:23:29 LOG7[3498:3086792368]: https accepted FD=511 from 10.195.158.225:42723
2010.05.05 11:23:29 LOG7[3498:3035167632]: https started
2010.05.05 11:23:29 LOG7[3498:3035167632]: FD 511 in non-blocking mode
2010.05.05 11:23:29 LOG7[3498:3035167632]: TCP_NODELAY option set on local socket
2010.05.05 11:23:29 LOG7[3498:3035167632]: Waiting for a libwrap process
2010.05.05 11:23:30 LOG7[3498:3086792368]: https accepted FD=512 from 10.195.158.225:42724
2010.05.05 11:23:30 LOG4[3498:3086792368]: Connection rejected: too many clients (>=500)
2010.05.05 11:23:30 LOG7[3498:3086792368]: https accepted FD=512 from 10.195.158.225:42725
2010.05.05 11:23:30 LOG4[3498:3086792368]: Connection rejected: too many clients (>=500)

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

Кто-нибудь знает, как настроить stunnel на потенциально большое количество подключений?

Насколько я помню, stunnel просто полагается на параметр ulimit, чтобы найти свой предел в файловых дескрипторах. Таким образом, вам просто нужно выполнить "ulimit -n 65536", и вы получите ограничение на количество клиентов около 32000.

Однако будьте осторожны, поскольку каждый контекст SSL может использовать много памяти. Кроме того, если ваш stunnel работает в режиме потока, вам не обязательно достигать такого высокого числа потоков.

Проверьте свои ограничения здесь: cat /proc/$(pidof stunnel4)/limits

Затем отредактируйте файл /etc/default/stunnel4: Установить RLIMITS: RLIMITS="-n 65536"

Перезапустите stunnel: sudo /etc/init.d/stunnel4 restart

Подтвердите свои пределы с помощью cat /proc/$(pidof stunnel4)/limits очередной раз.