vInfra.ch

Guillaume LACAILLE's Blog

Azure: Erreur 502 avec Azure Application Gateway

Lorsque vous utilisez Azure Application Gateway, vous obtenez l’erreur 502: Web server received an invalid response while acting as a gateway or proxy server.

Dans Azure, lorsque vous souhaitez faire du Load-Balancing, il existe plusieurs possibilités:

  • External Load-Balancing (L4);
  • Internal Load-Balancing (L4);
  • Azure Traffic Manager (plus ou  moins L4);
  • Azure Application Gateway (L7);
  • Les Load-Balanceurs du marketplace (Kemp…).

L4, L7, c’est quoi ?

Pour les passionés de l’automobile, ce n’est ni un 4 cylindres en ligne, ni un 7 cylindres en ligne ! Il s’agit de la couche OSI sur laquelle va intervenir le load-balancer.

  • L4: Le load-balancer agit au niveau TCP/IP;
  • L7: Le load-balancer agit au niveau applicatif.

Dans le cas qui nous intéresse, Azure Application Gateway permet de faire du load-balancing HTTP/HTTPS avec le l’offloading SSL et surtout la gestion des sessions utilisateurs (qui va rediriger l’utilisateur toujours sur le même serveur grâce à un cookie).

Erreur 502: Bad Gateway

J’ai deux serveurs IIS configurés de la même manière. Lorsque je me connecte depuis mon navigateur, j’obtiens le message suivant:

502 – Web server received an invalid response while acting as a gateway or proxy server.

There is a problem with the page you are looking for, and it cannot be displayed. When the Web server (while acting as a gateway or proxy) contacted the upstream content server, it received an invalid response from the content server.

Si j’utilise un External Load-Balancer (L4), je n’ai pas le même problème.

Bindings dans IIS

Après avoir testé plusieurs configurations de l’Azure Application Gateway (30min pour démarrer la gateway à chaque fois), j’ai regardé du côté des bindings de mon site IIS.

Binding IIS

Configuration classique. Toutefois non compatible avec Azure Application Gateway.

Azure Application Gateway s’appuye sur IIS Application Request Routing 2.5 (ARR). Hors, dans sa version publique, ARR nécessite qu’on lui ajoute des règles afin de permettre la redirection vers les différents sites dans IIS. Vous trouverez une vidéo explicative de Scott Forsyth à ce sujet ici: ARR Binding Trick Week 36.

Pour résoudre le problème, il suffit juste de laisser le Host Name vide dans notre binding:

Host name vide

 

Et il est enfin possible d’accéder au site-web sans problème !

Site accessible !

Impacts

Le problème de cette solution, c’est qu’il n’est pas possible d’héberer plusieurs sites web sur la même ferme de serveurs Web, dans Azure, en attendant que le service supporte les binding tout du moins. J’en ai fais la suggestion sur le site Azure Feedback: Allow IIS Hostname binding support in Azure Application Gateway. N’hésitez pas à voter pour cette fonctionnalité !

, , , , ,

One thought on “Azure: Erreur 502 avec Azure Application Gateway

Répondre à Support multisite dans Azure Application Gateway | vInfra.ch Annuler la réponse.

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *