Необходимо настроить масштабируемую внутреннюю инфраструктуру для мобильного приложения. Подключения к API должны быть зашифрованы SSL. Чтобы получить простое масштабируемое решение, я не хочу отключать SSL на балансировщиках нагрузки. Так что мои варианты - завершить его на сервере приложения / веб-сервера или на отдельном уровне завершения. Пока проблем нет.
Как мы знаем, квитирование SSL требует нескольких обходов, что, к сожалению, вызывает задержку. Распространенным решением для этого является кэширование сеансов SSL. Но чтобы сохранить масштабируемость стека и сбалансированную нагрузку, я не хочу использовать липкость сеанса и оставлять свои серверы без состояния. Поэтому мне нужно использовать центральный / распределенный кеш сеанса SSL, но, насколько я знаю, возможности ограничены.
Некоторые варианты, о которых я знаю:
- NGINX как терминатор SSL с кешем сеанса memcached (http://hezmatt.org/~mpalmer/blog/2011/06/28/ssl-session-caching-in-nginx.html).
- Stunnel как терминатор SSL с sessiond как кеш сеанса (https://www.stunnel.org/sessiond.html)
- Apache как терминатор SSL с distcache как кеш сеанса (distcache.sourceforge.net/)
Но все эти варианты устарели и / или недостаточно документированы. Существуют ли какие-либо решения, о которых я не знаю, или рекомендации для масштабируемого и быстрого процесса завершения SSL?
Какого размера вам нужно масштабировать? Что-то вроде F5 BigIP 8900 может обрабатывать тысячи одновременных SSL-соединений, избавляя вас от необходимости создавать что-то сложное в пользу того, что используется множеством людей (что означает, что другие люди найдут ошибки за вас).