Назад | Перейти на главную страницу

Медленная загрузка первой страницы SSL на NGINX

Я недавно приобрел сертификат QuickSSL от GeoTrust и использую его на NGINX. Все в порядке, но до загрузки страницы есть неприятная секунда.

Если я посмотрю на другие веб-сайты с SSL, большинство из них загружаются мгновенно, как и должно.

Это моя конфигурация SSL:

ssl on;
ssl_certificate /usr/local/nginx/ssl/www.crt;
ssl_certificate_key /usr/local/nginx/ssl/www.key;

Я узнал о добавлении ssl в конце listen директиву, но она не решила ее.
Чтобы воспроизвести эту проблему, мне нужно закрыть веб-сайт и вернуться к нему позже (примерно через 15 минут?).

Подтверждение SSL - это медленное трехпакетное событие. Это означает, что первоначальное соединение займет больше времени, чем соединение без SSL - обычно в 3-4 раза дольше. Следующие запросы будут использовать сеанс SSL из 1-го соединения и будут выполняться быстрее, но только до тех пор, пока сеанс остается активным.

Вы можете контролировать время жизни SSL-сеанса в NGINX, установив ssl_session_cache и ssl_session_timeout.


Изменить: только что заметил, что я объяснил, почему это происходит, но не то, что вы можете с этим сделать. К сожалению, ответа очень мало. Сколько времени занимает первоначальное рукопожатие, зависит от 2 факторов: времени, затрачиваемого на фактическое шифрование SSL (незначительное с текущим оборудованием), и времени, затрачиваемого на обмен 3 пакетами, который зависит только от сети - если только вы не можете получить «более низкий пинг» на сервере ничего не изменить.

Это звучит ужасно, как будто у вас включено кеширование сеанса SSL (15 минут ожидания, чтобы проблема возникла снова), и либо очень медленный процессор, либо ужасно скрытый сетевой путь между вами и сервером, который вызывает проблему.