IIS – Comment connaitre le serveur ayant répondu à la requête lors de l’utilisation d’un Load-Balancer
Il est de plus en plus fréquent qu’un site web utilise plus d’un serveur Web pour fonctionner. Cela se fait généralement grâce à un load-balancer, un équipement qui se met devant tous les serveurs web et qui va distribuer les requêtes vers les différents serveurs.
Parfois, il est intéressant de savoir quel serveur nous a répondu, c’est surtout utile en debug quand juste un serveur ne fonctionne pas correctement.
Pour ce faire, la solution la plus simple est d’utiliser les en-têtes HTTP. Un en-tête HTTP est une ligne que peut ajouter le serveur web au tout début de la réponse, les en-têtes sont couramment utilisés pour définir le cache client, les cookies, etc.
Au niveau de IIS, il est possible de définir des entêtes HTTP soit au niveau d’un site web, soit au niveau du serveur. Je vous conseille de rajouter cet en-tête au niveau du serveur, ainsi tous les sites en profiteront.
Pour cela, lancez la console d'administration IIS, au niveau du serveur, chercher la fonctionnalité “HTTP Response Header”

Puis ajouter une entrée :

Le nom de l’entête n’a pas d’importance, il ne s’agit que d’une information qui sera utilisé lors du debug. Cependant, certains nom sont réservés, la liste de ces en-têtes sont définies ici : IANA Permanent Message Header Field Names et IANA Provisional Message Header Field Names. De plus, éviter de mettre des informations confidentielles.
La plupart des outils de debug web permettent de lires les en-têtes HTTP : Fiddler, Firebug, Internet Explorer, etc. La capture ci-dessous montre les entêtes HTTP avec Internet Explorer.

Pour en savoir plus sur les en-têtes HTTP : List of HTTP header fields [Wikipedia]
Et vous, utilisez-vous couramment cette technique ?