Apache-MPM-Ereignis funktioniert mit SSL/HTTPS nicht wie erwartet

Apache-MPM-Ereignis funktioniert mit SSL/HTTPS nicht wie erwartet

Ich habe einen Server mit Apache/2.4.6 (CentOS)+ OpenSSL/1.0.2k-fips(ich weiß, dass dies eine alte Version von Apache ist, aber sie kann derzeit nicht aktualisiert werden). Das MPM-Ereignis wird für die Mehrfachverarbeitung verwendet.

Beim Bereitstellen HTTPvon Inhalten funktioniert alles wie erwartet:

Bildbeschreibung hier eingeben

Der Server kann problemlos viele Anfragen gleichzeitig verarbeiten (der Test wurde mit ungefähr 150 Clients durchgeführt, von denen jeder 4 parallele Verbindungen herstellte = 600 Verbindungen). Alle Anfragen zielen auf statische Inhalte ab und verwenden Keepalive.

bei HTTPS/SSList es eine andere Geschichte.

Bildbeschreibung hier eingeben

Es werden schnell alle 400 möglichen Threads verwendet (siehe Anzeigetafel). Es werden keine asynchronen Verbindungen hergestellt. Soweit ich weiß, verhält es sich wie mpm worker.

Zuerst dachte ich, es sei eine Einschränkung und das mpm eventwürde nur mit HTTP funktionieren. Aber das ist nicht das, was in derDokumentation(unterWie es funktioniert>Asynchrone Verbindungen) :

Diese Verbesserungen gelten sowohl für HTTP- als auch für HTTPS-Verbindungen.

EDIT: Es gibt einige Informationen inEinschränkungenAbschnitt vonDokumentationdas erklärt, dass in manchen Fällen auf zurückgegriffen werden könnte mpm worker. Dies scheint hier jedoch nicht zuzutreffen.

Antwort1

Beim Durchsehen des Apache-Quellcodes nach möglichen mpm workerFallback-Bedingungen fand ich Folgendes relevantKommentar:

Wenn wir einen Eingabefilter haben, der den Eingabestrom „verstopft“, wie es früher bei mod_ssl der Fall war, führen wir einfach das normale Lesen aus den Eingabefiltern durch, wie es das Worker MPM tut.

Da ich eine alte Version von Apache verwende, könnte das erklären, warum mpm eventes mit SSL nicht gut funktioniert.

EDIT: es sieht so aus, als wäre dies hier gemacht wordenbegehen:

core, mod_ssl: Heben Sie die Einschränkung auf, die verhindert, dass mod_ssl das Ereignis-MPM voll ausnutzt.

Ich verwende Apache 2.4.6und die Änderung wurde später in veröffentlicht 2.4.7.

verwandte Informationen