Re: nginx SSL offload в highload проекте

Илья Шипицин chipitsine at gmail.com
Thu Aug 23 06:34:46 UTC 2012


22 августа 2012 г., 2:04 пользователь ShivaS <nginx-forum at nginx.us> написал:

> Добрый вечер,
>
> Возникла интересная возможность применения nginx в очень нагруженном
> проекте.
>
> Мы активно пользуемся Амазонон (ЕС2) и соответственно лоад балансером ELB,
> который на данном этапе делает оффлоад на SSL и общается с пуш серверами.
> Сервис достаточно большой, и на определенном этапе мы поняли, что ELB
> перестал справляться с нагрузкой, да и его вечное отсоединение соединений с
> пуш серверами уже надоело.
>
> Провели тестирование с nginx на одном из серверов в амазоне, которое
> показало неплохие результаты, но все уперлось в память.
> Значит надо много серверов с большим кол-вом памяти. На удивление, несмотря
> на SSL, процессоры вообще не напрягались и LA постоянно оставался < 1, что
> дает возможность брать сервера с большим кол-вом памяти, малым кол-во
> процессоров и экономить.
>
> Система: CentOS 6; nginx 1.2.3
>
> конфиг подправлял в паре мест.
> Вот тут:
>
> listen       *:443 default backlog=4096 so_keepalive=30m::10;
>
> И еще немного тут:
>
> worker_processes  8;
> worker_rlimit_nofile 204800;
>
>
> events  {
>         worker_connections  20000;
>         use epoll;
>         multi_accept on;
>   accept_mutex on;
>         }
>
> Стоит ли ставить много воркеров и малое кол-во коннекшенов на каждый или
> достаточно один и сразу выставить максимальное кол-во подсоединений? Диски
> не задействованы совсем.
> Приведенные выше настройки использовались на сервере с 7ГБ памяти.
> каждый воркер берет память, а при 60кб на клиент, даже несколько сотен
> мегабайт при большом кол-ве серверов может дать некоторый выигрыш.
>
> Использую ssl ciphers AES256-SHA, для относительной надежности и скорости.
>
> стоит ли ставить OpenSSL 1.0.1? ECDHE не пользуем, да и тормознутый он
> (судя
> по бенчмаркам, которые мы гоняли) и в скорости обработки подсоединений и в
> объеме потребляемой памяти. Кроме этого, никаких преимуществ особо не нашел
> в 1.0.1
> Может, там что-то и подкручено, но меня интересует в основном потребление
> памяти, а разницы с 1.0 в тестах не заметил
>
> Кеш выставил, но шансы что клиент переподсоединиться на тот же сервер -
> минимальны, но сотню мегов не жалко ;-)
>
> ну и sysctl соответственно тоже.
>
> Сейчас вот подумываем очень серьезно о полном переходе на nginx в качестве
> основного оффлоадера.
> Хотим на днях запустить полноценный продакшен тест (а может и финальный
> переход на nginx)
>
> Что еще можно подкрутить для уменьшения потребления памяти (если возможно
> вообще)?
> Может быть еще на что-то надо обратить внимание, без чего хорошего
> перформанс не достигнуть?
>

вылетело из головы.
обратить внимание стоит на то, что вы отдаете не только сертификат сервера,
а всю цепочку сертификации

хороший пример (отдается сертификат сервера + промежутчный + корневой +
кросс до старого корня)

http://www.sslshopper.com/ssl-checker.html#hostname=www.gosuslugi.ru


плохой пример (отдается короткая цепочка)

http://www.sslshopper.com/ssl-checker.html#hostname=www.bank24.ru


здесь идея такая - в 2007 кажется году, была замена корневых сертификатов у
основных публичных УЦ (старые были на md5), соответственно, если вы отдаете
новую цепочку + кросс до старого, то вам будут доверять даже непропатченные
WinXP выпуска 2001-го года, в которых нет новых публичных корневых (но вы
отдали кросс до старого корневого). а если вы отдаете только серверный
сертификат, то вам не будут доверять даже Windows 7 в дефолтной инсталяции.

при отдаче длинных цепочек увеличивается немного трафик за счет доп.
сертификатов в SSL Server HELO, но если у вас разношерстная аудитория с
непропатченными браузерами - делать нечего.

на nginx все сертификаты можно поместить в  один pem-файл и указать в

ssl_certificate    blah-blah-blah.pem;



>
> Понимаю, что чудес наверно ждать не стоит, но вдруг кто сталкивался с
> чем-то
> похожим и не спал ночами ;-)
>
> И еще вопрос многоуважаемым разработчикам:
> Когда планируется (и планируется ли вообще) поддержка CyaSSL?
> Промелькнуло пару постов, что вроде уже тесты идут, и по слухам потребление
> памяти должно сильно упасть.
> Я в траке искал, но может не там...ничего не нашел
>
> Спасибо!
>
> Posted at Nginx Forum:
> http://forum.nginx.org/read.php?21,229967,229967#msg-229967
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20120823/b1d79816/attachment-0001.html>


Подробная информация о списке рассылки nginx-ru