У меня проблема с Apache 2.4.7 на Ubuntu 14.04 (настройки почти по умолчанию), виртуальный облачный сервер.
При средней загрузке сервера (около 2 / 3,0 процессора и тонны свободной памяти) время установления HTTPS-соединения увеличивается до 5-15 секунд (иногда и больше). Вот пример вывода curl, посмотрите на время:
My-MBP:~ me$ curl --trace-time --trace-ascii - https://domain.tld/some.png
20:44:40.952209 == Info: Trying 111.111.111.111...
20:45:16.046183 == Info: Connected to domain.tld (111.111.111.111) port 443 (#0)
20:45:32.371816 == Info: TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
20:45:32.371919 == Info: Server certificate: www.domain.tld
20:45:32.371946 == Info: Server certificate: GlobalSign Extended Validation CA - SHA256 - G2
20:45:32.372025 == Info: Server certificate: GlobalSign
20:45:32.372069 => Send header, 125 bytes (0x7d)
0000: GET /some.png HTTP/1.1
003c: Host: domain.tld
0055: User-Agent: curl/7.43.0
006e: Accept: */*
007b:
20:45:32.538703 <= Recv header, 17 bytes (0x11)
0000: HTTP/1.1 200 OK
20:45:32.538747 <= Recv header, 37 bytes (0x25)
0000: Date: Wed, 09 Dec 2015 19:47:34 GMT
20:45:32.538765 <= Recv header, 16 bytes (0x10)
0000: Server: Apache
20:45:32.538778 <= Recv header, 37 bytes (0x25)
0000: X-Powered-By: PHP/5.5.9-1ubuntu4.14
20:45:32.538795 <= Recv header, 23 bytes (0x17)
0000: Cache-Control: public
20:45:32.538810 <= Recv header, 42 bytes (0x2a)
0000: ETag: "1234567890"
20:45:32.538827 <= Recv header, 40 bytes (0x28)
0000: Expires: Wed, 09 Dec 2015 19:57:34 GMT
20:45:32.538844 <= Recv header, 22 bytes (0x16)
0000: Content-Length: 7159
20:45:32.538860 <= Recv header, 25 bytes (0x19)
0000: Content-Type: image/png
20:45:32.538876 <= Recv header, 2 bytes (0x2)
0000:
20:45:32.539541 <= Recv data, 7159 bytes (0x1bf7)
...
Также скорость передачи файла довольно хорошая, только время на установление соединения ужасно.
Но: весь запрос / ответ для одного и того же файла через HTTP работает очень быстро (<100 мс). Во времена интенсивного использования (> 3.0) иногда также не возникает проблем с HTTP и HTTPS.
Какие-либо предложения?
Редактировать:
<IfModule mod_ssl.c>
...
SSLRandomSeed startup builtin
SSLRandomSeed startup file:/dev/urandom 512
SSLRandomSeed connect builtin
SSLRandomSeed connect file:/dev/urandom 512
...
</IfModule>
Этого не должно происходить при установке «почти по умолчанию», поэтому я предлагаю вам связаться с вашей хостинговой компанией по поводу проблемы, чтобы узнать, известно ли она уже и / или они могут ее исправить.
Другие вещи, которые могут быть полезны для решения проблемы:
openssl speed
Для сервера: openssl s_server -4 -www -accept 444 -cert /etc/ssl/example.com.crt -key /etc/ssl/example.com.key -verify_return_error -debug
Для клиента: openssl s_client -debug -connect example.com:444
Вы можете попытаться подключиться к https://example.com:444 с вашим браузером тоже.
SSLHonorCipherOrder On
SSLCipherSuite ALL:!ADH:!EXP:!LOW:!RC2:!3DES:!SEED:!RC4:+HIGH:+MEDIUM
Проверка, есть ли у других клиентов вашей хостинговой компании такая же проблема (попробуйте подключиться к https на IP-адресах вокруг вашего)
Проверка того, что использование интерфейса nginx для обслуживания https решит проблему