Apache HTTP-Server hängt unter Windows beim Ausliefern von Webseiten
Ich nutze den Apache Webserver unter Windows für die lokale Entwicklung und habe dabei in letzter Zeit des Öfteren beobachtet, dass plötzlich Anfragen gar nicht mehr oder nur mit erheblicher Zeitverzögerung beantwortet werden und das sowohl bei lokalen Aufrufen (localhost) als auch Aufrufen aus dem Netzwerk.
In der Log-Datei habe ich den folgenden Fehler entdeckt:
[Sun Mar 06 19:55:41.729117 2016] [mpm_winnt:warn] [pid 3820:tid 2240] (OS 64)Der angegebene Netzwerkname ist nicht mehr verf��r. : AH00341: winnt_accept: Asynchronous AcceptEx failed.
Eine kurze Recherche hat zwei mögliche Lösungsansätze aufgezeigt, die das Phänomen behoben haben.
Lösung 1
Die folgenden Konfigurationsparemeter am Ende der Datei httpd.conf im Verzeichnis \conf des Installationsverzeichnisses von Apache ergänzen:
#
# freeze-fix for apache http server on windows
#
AcceptFilter https none
AcceptFilter http none
EnableSendfile Off
EnableMMAP Off
Lösung 2
In der Datei httpd-mpm.conf im Verzeichnis \conf\extra des Installationsverzeichnisses von Apache den Wert ThreadStackSize auf 8242880 setzen.
# WinNT MPM
# ThreadsPerChild: constant number of worker threads in the server process
# MaxConnectionsPerChild: maximum number of connections a server process serves
<IfModule mpm_winnt_module>
ThreadsPerChild 150
MaxConnectionsPerChild 0
ThreadStackSize 8242880
</IfModule>