IS> Самая ресурсоёмкая часть SSL - это установление SSL сессий (handshake).
IS> SSL поддерживает кэширование сессий, то есть, клиент может установить
IS> одну сессию, а затем использовать её в нескольких одновременных
IS> или в будущих соединениях.
IS> nginx поддерживает кэш сессий в только пределах одного процесса.
IS> Собственно nginx'у для этого практически ничего не нужно делать,
IS> только пара вызовов, всё остальное делает сам OpenSSL.
IS> Апачу приходится использовать межпроцессный кэш, поскольку
IS> у него каждый процесс обрабатывает только одно соединение и
IS> вероятность того, что следующий запрос этого же клиента попадёт на
IS> тот же процесс, достаточно мала и, как следствие, внутренний
IS> кэш практически не использовуется.
Дело в том, что есть нагруженный сервер, хочется добавить один хост с
https.
99,9% запросов будут идти по http
Сейчас воркеров 3 и уменьшать их не хочется, боюсь это плохо скажется
на обработке http запросов.
IS> Какой характер нагрузки ? Часто ли nginx ходит к диску ? Если нет,
IS> то одного рабочего процесса будет достаточно. Более того, в этом
IS> случае один процесс будет лучше.
Нагрузка - раздача файлов от 100 кб до нескольких Mb с диска.
В логе иногда проскакивают сообщения:
accept() failed (53: Software caused connection abort) while accepting new
connection on 213.219.249.67:80
Как писалось в рассылке то лечиться наоборот увеличением воркеров.
Хотя в моем случае это можно быть вызвано другой причиной - скорость
скачки ограничивается через ipfw pipe и много пакетов дропается в нем.
"Software caused connection abort" означает, что к тому моменту, когда
nginx вызвал accept(), клиент уже закрыл соединение. Если netstat -Lan
показывает, что очередь запросов практически пустая, то дело не в числе
воркеров.
Есть другой сервер, там нагрузка на диск сравнительно небольшая и
думаю лучше сделать 1 воркер. Вопрос такой - можно ли будет как то
понять, что одного воркера мало, если ли какие ни будь признаки?
Во FreeBSD одного воркера мало, если
1) nginx часто висит в состоянии biord,
2) requests for I/O initiated by sendfile в выводе "netstat -m"
увеличивается с каждой секундой.
Скажется ли отрицательно на загрузке процессора количество воркеров
больше одного, в данном случае?
IS> Если SSL мало, то не должно.
SSL запросов будет очень мало, так что думаю можно смело его включать.