Jak z wdziękiem zrestartować Apache bez rozłączania połączeń SSL?

11

Próbujemy przeładować Apache z wdziękiem za pomocą polecenia, takiego jak:

apache2ctl -k graceful

Działa to zgodnie z oczekiwaniami dla użytkowników HTTP, a konfiguracja Apache jest ładowana ponownie bez wpływu na użytkowników witryny.

Stwierdziliśmy jednak, że użytkownicy uzyskujący dostęp do serwera przez HTTPS są rozłączani podczas płynnego przeładowywania.

W jaki sposób można bez problemu przeładować Apache bez wpływu na połączenia SSL?

Jeśli to pomoże, używamy HTTP 2 na Apache 2.4.20.

Jones
źródło
5
Cóż, możesz „przeładować” zamiast restartować apache. Zakładając, że uruchamiasz takie rzeczy jak wymiana kluczy Diffie-Hellmana, po ponownym uruchomieniu klucz użyty w poprzedniej „sesji” już nie będzie istniał, więc powstają nowe. Inną opcją byłoby umieszczenie pewnego rodzaju modułu równoważenia obciążenia, który również obsługuje ssl przed serwerami Apache.
Harrys Kavan
Tak, ładujemy ponownie (z gracją) zamiast restartujemy.
Jones
5
Zakończenie protokołu SSL w HAProxy jest dla nas opcją, czy ktoś może potwierdzić, że jest to wykonalne rozwiązanie?
Jones
2
W dzisiejszych czasach powszechne jest używanie proxy lub modułu równoważenia obciążenia kończącego ssl użytkownika końcowego. Następnie dla maksymalnego bezpieczeństwa dodasz „wewnętrzne” szyfrowanie ssl między apache a modułami równoważącymi / równoważącymi obciążenie serwera proxy.
Harrys Kavan
5
Potwierdziliśmy teraz błąd jako problem z modułem HTTP2 w Apache 2.4.10, mając nadzieję, że można go naprawić wcześniej. Po wyłączeniu HTTP2 można ponownie załadować Apache bez rozłączania użytkowników SSL.
Jones

Odpowiedzi:

1

Aby mieć pewność, że sesje HTTP oparte na H2 zostaną pozostawione same (a nie zakończone) podczas wykonywania apachectl -k graceful, zaktualizuj oprogramowanie Apache do wersji 2.4.24, a pakiet mod_h2 do wersji 1.4.7.

John Greene
źródło
Po aktualizacji i wypróbowaniu tego, zdam relację. Dzięki
Jones,