ssl_session_cache
Директива `ssl_session_cache` задаёт кэш для параметров SSL-сессии, что ускоряет SSL‑рукопожатие.
Описание
Директива ssl_session_cache в NGINX задаёт механизм кэширования параметров SSL-сессии, что повышает производительность за счёт уменьшения накладных расходов при установлении SSL‑соединений. Кэшируя SSL-сессии, клиенты могут возобновлять соединения без полного выполнения SSL‑рукопожатия, что ускоряет процесс, особенно для повторных посетителей. Эту директиву можно задавать в контекстах http и server, что даёт гибкость в зависимости от того, как SSL применяется на различных серверах или локациях.
Синтаксис ssl_session_cache допускает один или два параметра: тип кэша и, опционально, размер кэша. Тип кэша может быть shared или none, причём тип shared указывает, что кэш может использоваться несколькими рабочих процессами. При указании, размер определяет максимальное количество параметров сессии, хранимых в кэше, что существенно влияет на использование памяти и ёмкость. Поведение этого механизма кэширования зависит от размера и управления кэшем SSL‑сессий, что напрямую влияет на производительность SSL‑соединений для конечных пользователей.
Когда клиент повторно подключается и предоставляет свой идентификатор сессии, NGINX может быстро получить сохранённые параметры сессии, если они не истекли, что позволяет серверу пропустить тяжёлые вычисления, связанные с установлением новой сессии. Это особенно полезно в сценариях с большим трафиком, когда критично снижать задержки для SSL‑соединений.
Пример конфига
http {
ssl_session_cache shared:SSL:10m;
}Убедитесь, что размер кэша соответствует вашему трафику; слишком маленький размер может привести к частым вытеснениям из кэша.
Если вы используете несколько server blocks, убедитесь, что они используют один и тот же named cache, если требуется совместное использование сессий между origin servers.