Я пытаюсь подключить 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
очередной раз.