Я недавно приобрел сертификат 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 минут ожидания, чтобы проблема возникла снова), и либо очень медленный процессор, либо ужасно скрытый сетевой путь между вами и сервером, который вызывает проблему.