1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !
Rediriger le trafic Web vers un port spécifique
Ce guide concerne la redirection du trafic Web vers un port spécifique, y compris en cas d'utilisation d'une IP dédiée et d'une application Web spécifique (comme Node ou Varnish p.ex).
Prérequis
- installer HAProxy sur le Serveur Cloud
Rediriger le trafic Web vers un port spécifique
Par défaut, sur Serveur Cloud, le trafic Web est envoyé à Apache. Pour envoyer les requêtes vers un script Node ou un autre service (pour autant qu'il "écoute" sur un port entre 4000 et 4009), il faut passer par HAProxy.
Cela s'applique notamment pour les serveurs Express, Socket.IO, Meteor.js, Nuxt.js, Django, Flask, Ruby on Rails, mĂŞme Ă©ventuellement Java (J2E), etc.
Pour ça, il faut vous assurer que le service écoute bien sur un port entre 4000 et 4009 (notamment avec server.listen(4000)
pour Express ou un serveur HTTP Node basique, mais selon le type de projet par d'autres moyens, un fichier de configuration, dans le code ou autre) et sur toutes les interfaces (0.0.0.0). Il sera également nécessaire de configurer HAProxy comme dans l'exemple ci-après :
- se connecter au Manager Infomaniak (manager.infomaniak.com) depuis un navigateur Web comme Brave ou Edge
- cliquer sur l'icône en haut à droite de l'interface (ou naviguer grâce au menu latéral gauche p.ex)
- choisir Serveur Cloud (univers Web & Domaine)
- cliquer directement sur le nom de l'objet concerné dans le tableau qui s'affiche
- cliquer sur Fast installer dans le menu latéral gauche
- cliquer sur l'icĂ´ne â‹® Ă droite de HAProxy
- cliquer sur Configurer
- entrer les informations désirées:
Récupération de l'IP source d'une requête
Lorsque vous redirigez le trafic Web vers votre application Web, le traitement des requêtes change et la requête est d’abord reçue par un reverse proxy (local au serveur) qui transfère ensuite la requête vers le port choisi. Ainsi, à cause du transfert de la requête, les méthodes permettant habituellement de récupérer l’IP du visiteur vont donner l’IP du reverse proxy au lieu de celle du visiteur.
Ainsi, pour récupérer l'IP source réelle du visiteur dans ces cas, il faut consulter un header HTTP nommé X-Forwarded-For
, qui contiendra les IPs source accumulées lors de chaque redirection. Ce header contiendra donc en dernier l'adresse IP originale du client, permettant d'identifier le visiteur réel.
Attention : Il est important de noter que les headers HTTP peuvent être manipulés, ce qui présente des risques de sécurité. Pour minimiser ces risques, il est recommandé de vérifier que la requête provient bien d'un serveur fiable avant de faire confiance au contenu du header X-Forwarded-For
. Cette vérification peut impliquer de s'assurer que la requête a été transmise par un serveur intermédiaire de confiance, identifié par une liste préétablie d'adresses IP. Dans le cas où le site utilise une IP dédiée, les serveurs de confiance sont :
- 83.166.133.15
- 83.166.133.17
- 83.166.133.16
- 84.16.92.5
- 84.16.92.43
- 10.2.32.255
- 10.2.34.164