Я пытаюсь устранить проблему с SSL в Apache. Я использовал Wireshark для захвата пакетов, и я вижу, что клиентское приветственное сообщение выходит, а затем примерно через 10 секунд или около того я возвращаю привет серверу. Как только соединение SSL установлено, последующие запросы HTTPS выполняются быстрее.
Я использую / dev / urandom для энтропии, и, думаю, у меня есть много возможностей. Моя загрузка процессора почти ничего, но я получаю около 10 запросов в секунду.
Я использую стандартные настройки Apache 2.2.14 на Ubuntu 10.04. Мой сертификат - это сертификат SAN от GoDaddy.
Какие шаги я должен предпринять, чтобы узнать, почему мой сервер так долго отвечает через SSL? HTTP работает быстро, но HTTPS очень медленный.
Редактировать:
Вот изображение, которое показывает привет клиенту, а затем, примерно через 10 секунд, привет серверу:
Увеличение количества MaxClients, скорее всего, решит эту проблему.
Обратите внимание, что значение по умолчанию для MaxClients - 256, поэтому, если это изменение решило проблему, то у вас, вероятно, был параметр для MaxRequestWorkers, который был немного ниже. Обратите внимание, что MaxClients - это устаревшее имя, а MaxRequestWorkers - это новое имя, поэтому, если у вас было меньше MaxRequestWorkers, а затем добавили MaxClients позже в конфигурации, значение MaxClients переопределит ваше более низкое значение MaxRequestWorkers, устраняя проблему.
Что касается того, почему это произошло только на HTTPS, я подозреваю, что это связано с тем, что клиенты браузера более агрессивно поддерживают соединения при использовании HTTPS (что понятно). Таким образом, гораздо легче исчерпать доступные клиенты.
Я увеличил количество MaxClients в конфигурации apache до 256, перезагрузил apache, и все значительно улучшилось. Мне трудно поверить, что это была проблема, потому что HTTP был как всегда быстрым, а HTTPS - медленным.
apache2ctl status
сообщает «185 запросов в настоящее время обрабатываются», а параметр MaxClients был равен 150 до того, как я внес изменения. В этом есть смысл, но опять же, почему HTTP должен быть быстрым?
cat /proc/sys/kernel/random/entropy_avail
сообщает 190.
Apache 2.2.14 - это последняя версия apache, доступная для Ubuntu 10.04.