Apache KeepAliveTimeout
existe pour fermer une connexion persistante si une nouvelle demande n'est pas émise dans un délai donné. À condition que l'utilisateur ne ferme pas son navigateur / onglet, ce délai (généralement 5 à 15 secondes) ferme éventuellement la plupart des connexions persistantes et empêche le gaspillage des ressources du serveur en conservant les connexions indéfiniment.
Maintenant, la MaxKeepAliveRequests
directive limite le nombre de requêtes HTTP qu'une seule connexion TCP (laissée ouverte en raison de KeepAlive
) servira. La définition de ce paramètre 0
signifie qu'un nombre illimité de demandes sont autorisées.
Pourquoi voudriez-vous jamais régler cela sur autre chose que "illimité"? À condition qu'un client fasse toujours activement des demandes, quel mal y a-t-il à les laisser se produire sur la même connexion permanente? Une fois la limite atteinte, les demandes arrivent toujours, juste sur une nouvelle connexion.
À mon avis, il est inutile de limiter cela. Qu'est-ce que je rate?
la source
En partie, pour empêcher un seul utilisateur de monopoliser tous les emplacements de connexion. Sans limite, un client malveillant ou mal écrit pourrait prendre en charge toutes les connexions disponibles et les conserver indéfiniment. Cependant, ce n'est pas une bonne atténuation par rapport à quelque chose comme une limite de connexion par IP.
Surtout l'équilibrage de charge, mais spécifiquement en ce qui concerne la maintenance. Si vous souhaitez mettre un serveur hors ligne, vous le déposez à 0 connexions mais autorisez les connexions existantes à se terminer pendant un certain temps. Le fait de limiter le nombre de requêtes keepalive signifie que les utilisateurs créeront progressivement une nouvelle connexion et seront déplacés vers un nouveau serveur principal. Il serait probablement préférable de signaler au serveur qu'il devrait cesser d'accepter les Keepalives pendant le processus de vidange, mais pour autant que je sache, une telle fonctionnalité n'existe pas.
la source