Я создаю сайт прямо сейчас, на котором много сообщений в чате и социальных сетей, перемещающихся между пользователями как в реальном времени, так и через архивы (текстовые материалы, а не изображения). Я хочу предоставить пользователям максимально безопасный опыт и хочу запускать все через https. Я бы сказал, что около 30% сайта действительно не нуждаются в https, но из-за всей кросс-фреймовой связи javascript, используемой на сайте, было бы сложно разработать код для обхода мер безопасности межсайтового скриптинга. . Я также использую длинный опрос xhr (механизм ape ajax-push) для потоковой передачи данных, поэтому у меня также будет много одновременных открытых соединений, работающих через stunnel.
Мой вопрос таков: я видел физические брандмауэры с хостами, которые могут обрабатывать несколько сотен тысяч обычных одновременных подключений, но только несколько сотен одновременных ssl-подключений. В целом, сильно ли ухудшается масштабируемость физических брандмауэров при использовании https или http? Особенно с учетом того, что около 90% всех авторизованных пользователей на сайте будут иметь открытое соединение с сервером, используя механизм ape для данных в реальном времени. Если да, то какие у брандмауэров есть варианты, чтобы правильно справиться с этой ситуацией для ssl, при этом сохраняя масштабируемость?
Я понимаю открытый характер этого вопроса. На самом деле я просто ищу, какой опыт были у других разработчиков в таких ситуациях, как они справились с этим и какое оборудование они сочли полезным в таких случаях. Я могу перекодировать сайт для использования https и http, но это последний вариант.
Кстати: сайт работает на стеке LAMP. Его придется масштабировать примерно до 1 миллиона одновременных пользователей, поэтому масштабируемость действительно важна. (Давайте не будем превращать это в дискуссию о том, что «ваш сайт никогда не станет таким большим»)
Взгляните на xmpp и некоторые из кластерных бесплатных серверов, которые можно масштабировать, больше подходят для веб-приложений, которым требуются одновременные постоянные соединения.
Здесь на работе мы используем аппаратные балансировщики нагрузки F5, и они могут выполнять завершение SSL как часть своей работы. Таким образом, они значительно снизили нагрузку на наши серверы, и мы можем масштабироваться по горизонтали гораздо дальше, чем в противном случае. Модель F5 взимает плату за одновременные транзакции SSL. в секунду, который определяется как активная передача данных в заданную секунду, поэтому это трудно перевести в "1 миллион одновременных пользователей", что, вероятно, является показателем количества сеансов.
Здесь важно отметить, что эти устройства сами по себе не являются межсетевым экраном. Они находятся за нашим брандмауэром, мы просто передаем им трафик tcp / 443, как в противном случае использовали бы tcp / 80, и позволяем устройствам выгружать пакеты по мере необходимости. Для разгрузки SSL они очень эффективны и требуют времени замены сертификата SSL, вам нужно сделать это только на нескольких устройствах, а не на нескольких серверах.