Recommandations d'optimization d'Apache pour Windows Server 2008

Nous avons implémenté Apache 2.4 64bit sur Windows Server 2008 R2 en tant que proxy inverse pour profiter d'un cert générique pour notre domaine. Nous avons été déçus par la performance même avec une charge légère, donc j'ai probablement mal configuré quelque chose. Les sites Web servis par le proxy (Glassfish 3.0.1) deviennent de plus en plus lents au sharepoint ne pas répondre. Le redémarrage d'Apache corrige temporairement le problème, mais il devient rapidement inacceptable. En ignorant le proxy en allant directement à l'adresse IP du server Glassfish, nous pouvons voir que GF n'est pas le problème. La seule chose que nous faisons est le proxy inverse du frontend SSL sur Apache et le passage du trafic sur le réseau interne avec http au server Glassfish.

Lorsque les sites Web ne répondent pas, un regard sur les process Windows Server indique très peu d'activité. La CPU peut fonctionner à 10% (CPU unique). Il y a less de 30 connections TCP. L'utilisation de la memory est inférieure à celle d'un GB (c'est une machine de 4 Go). Le trafic réseau casse à peine le seuil de 100kbps. Toutes les indications indiquent que le server ne cesse de transpirer, mais le site ne répond pas.

J'ai défini les propriétés suivantes:

SSLSessionCache "shmcb:C:/Apache_direct/logs/ssl_scache(1024000)" SSLSessionCacheTimeout 300 ThreadsPerChild 3000 MaxRequestsPerChild 0 KeepAlive On KeepAliveTimeout 15 ProxyRequests Off SSLSsortingctSNIVHostCheck off ProxyBadHeader Ignore 

J'ai des parameters d'hôte virtuel pour chaque port http et https pour chaque server. Les parameters VHost sont similaires à:

 <VirtualHost *:443> ServerName test.domain.org # ProxyPreserveHost On SSLEngine on ProxyPass / http://192.168.80.196:8080/ ProxyPassReverse / https://192.168.80.196:8080/ </VirtualHost> 

Est-ce que j'ai manqué un réglage important ici ou mal configuré un réglage? Sur la base de ce que j'ai lu, Apache devrait pouvoir gérer facilement le trafic que nous avons, ce qui est le suivant:

 800 visits an hour. 13k visits daily. 100 uploads an hour of roughly 60mb MP3 files. 400 downloads an hour of those same MP3 files. 800 downloads of small (100k) pdf files. 

Glassfish sert tous les téléchargements / téléchargements de files et nous autorisons ces sessions à persister jusqu'à une heure. Étant donné que la plupart des files sont uniques, nous ne sums pas certains des parameters de cache que nous devrions utiliser (le cas échéant). Peut-être devrais-je supprimer les parameters du cache SSL?

Il existe de nombreux succès sur la performance d'Apache sur le web, mais quelques-uns traitent spécifiquement du proxy inverse, du SSL et donnent des recommandations en fonction du type / quantité de trafic. Certaines suggestions seraient très utiles.

Je vais répondre à ma propre requête, de sorte que, si quelqu'un se présente, ils verront au less des réponses …

Je n'ai jamais eu la confirmation que cette configuration particulière était correcte, incorrecte ou pourrait être améliorée. Je sais que nous avons décidé d'y aller une fois de plus avec les modifications suivantes (reflection pure de ma part):

 Threadlimit 3000 ThreadsPerChild 3000 MaxRequestsPerChild 0 KeepAlive On KeepAliveTimeout 15 AcceptFilter https none AcceptFilter http none EnableSendfile Off EnableMMAP off ProxyRequests Off SSLSsortingctSNIVHostCheck off ProxyBadHeader Ignore HostnameLookups off ExtendedStatus off 

Nous n'avons rencontré aucun problème de performance avec cette configuration, donc nous sums en cours de production avec elle. La question principale, qui était de savoir comment avoir de bonnes performances dans un environnement proxy inverse, a été répondu par essai et erreur.