Как вы можете изящно перезапустить Apache, не отключая SSL-соединения?

11

Мы пытаемся перезагрузить Apache изящно с помощью такой команды:

apache2ctl -k graceful

Это работает, как ожидается, для пользователей HTTP, и конфигурация Apache перезагружается, не затрагивая пользователей веб-сайта.

Однако мы обнаружили, что пользователи, обращающиеся к серверу по протоколу HTTPS, отключаются во время постепенной перезагрузки.

Как можно корректно перезагрузить Apache, не влияя на SSL-соединения?

В случае, если это помогает, мы используем HTTP 2 на Apache 2.4.20.

Джоунс
источник
5
Ну, вы могли бы "перезагрузить" вместо перезапуска Apache. Предполагая, что вы выполняете такие вещи, как обмен ключами Диффи-Хеллмана, после перезапуска ключ, использованный в предыдущем «сеансе», больше не будет существовать, поэтому создаются новые. Другой вариант - установить какой-то балансировщик нагрузки, который также размещает ssl перед вашими серверами apache.
Гаррис Каван
Да, мы перезагружаемся (изящно) вместо перезапуска.
Джонс
5
Завершение SSL в HAProxy - это вариант для нас, если кто-нибудь может подтвердить, что это работоспособное решение?
Джонс
2
В настоящее время довольно часто иметь прокси-сервер или балансировщик нагрузки, завершающий ssl конечного пользователя. Затем для максимальной безопасности вы добавите ssl-шифрование внутри компании между apache и proxy's / loadbalancers.
Гаррис Каван
5
Теперь мы подтвердили ошибку как проблему с модулем HTTP2 в Apache 2.4.10, надеясь, что это может быть исправлено в апстриме. Когда мы отключаем HTTP2, Apache можно перезагрузить, не отключая пользователей SSL.
Джонс

Ответы:

1

Чтобы гарантировать, что HTTP-сеансы на основе H2 остаются одними (и не прекращаются) при выполнении apachectl -k graceful, обновите программное обеспечение Apache до версии 2.4.24 и пакет mod_h2 до версии 1.4.7.

Джон Грин
источник
Как только мы обновим и попробуем это, я сообщу. Спасибо
Джонс