Apache arrête aléatoirement le service HTTPS, mais HTTP fonctionne très bien

Nous avons cet Apache sur Windows Server 2012:

Server version: Apache/2.4.9 (Win32) Apache Lounge VC10 Server built: Mar 17 2014 10:48:43

La plupart du temps, il fonctionne parfaitement, mais de temps en temps (au hasard, cca 3-4 fois par semaine), il cesse de servir le HTTPS sur le port 443, mais continue de servir HTTP sur le port 80. Lorsqu'il arrête de servir le HTTPS, le Le seul moyen de résoudre le problème est de redémarrer Apache.

Cela semble être le même problème que ici: Apache cesse de répondre aux requêtes HTTP – https continue de fonctionner, sauf que dans notre cas, HTTPS cesse de fonctionner et HTTP est celui qui fonctionne tout le temps.

Nous avons permis à trace6 niveau de verbosité d'obtenir de bonnes informations sur ce qui se passe. Cependant, les journaux sont vides:

 ... [Sat Mar 21 07:51:50.577373 2015] [ssl:debug] [pid 3356:tid 2540] ssl_engine_io.c(999): [client ...:16529] AH02001: Connection closed to child 137 with standard shutdown (server ...:443) [Sat Mar 21 07:54:21.936742 2015] [ssl:info] [pid 4760:tid 432] AH01914: Configuring server ...:443 for SSL protocol ... 

Dans ce journal, nous pouvons voir la dernière ligne pour la dernière demande qui a été servie OK à 07:51:50 et puis il n'y a rien (notre système de surveillance interne tente de se connecter toutes les minutes et donc il devrait y avoir 07:52:50 enregistrement , Mais il manque). La ligne suivante à 07:54:21 est après l'expiration de notre système de surveillance interne et a redémarré le service Apache.

Notre surveillance interne est en C # et sa sortie était:

 System.Net.WebException: The operation has timed out at System.Net.HttpWebRequest.GetResponse() at ExecuteServicePageCheck(Object stateInfo) 

Notre httpd-ssl.conf ressemble à ceci:

  <VirtualHost _default_:443> ServerName ...:443 ServerAlias www.....com DocumentRoot ${US_ROOTF_WWW}/.../www/www SSLEngine On SSLProtocol All -SSLv2 -SSLv3 SSLHonorCipherOrder on # Prefer PFS, allow TLS, avoid SSL, for IE8 on XP still allow 3DES SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+AESGCM EECDH EDH+AESGCM EDH+aRSA HIGH !MEDIUM !LOW !aNULL !eNULL !LOW !RC4 !MD5 !EXP !PSK !SRP !DSS" # Prevent CRIME/BREACH compression attacks SSLCompression Off # Commit to HTTPS only traffic for at least 180 days Header add Strict-Transport-Security "max-age=15552000" SSLCertificateFile ${US_ROOTF}/core/apache2/server_certs/....crt SSLCertificateKeyFile ${US_ROOTF}/core/apache2/server_certs/....key SSLCertificateChainFile ${US_ROOTF}/core/apache2/server_certs/....ca-bundle CustomLog "logs/.../www/access.ssl.%Y.%m.%d.log" combined ErrorLog "logs/.../www/error.ssl.log" LogLevel trace6 </VirtualHost> 

Y a-t-il quelque chose de plus possible pour obtenir des informations sur ce qui se passe là-bas? Nous n'avons aucun message d'erreur d'Apache n'importe où, même pas sur ce niveau de trace6.

Notez que nous avons plus de domaines servis sur HTTP et HTTPS et le problème se produit pour tous sur HTTPS. C'est comme si Apache vient de fermer silencieusement ce port.

Après avoir testé différentes configurations, nous avons découvert le problème et le serveur fonctionne stable depuis 7 jours sans aucun problème.

Ces paramètres dans le fichier httpd.conf ont corrigé le problème:

 AcceptFilter http none AcceptFilter https none 

Auparavant, nous n'avions que le AcceptFilter pour http et la deuxième ligne manquait.

Selon la documentation d'Apache, les valeurs par défaut de Windows sont les suivantes:

 AcceptFilter http data AcceptFilter https data 

L'utilisation de none value utilise accept () plutôt que AcceptEx () et ne recycle pas les sockets entre les connexions.

Eh bien, je pense que c'est un problème de pare-feu dont vous avez besoin d'installer iptable pour transmettre de l'IP. L'activation du filtre devrait résoudre le problème