Rediriger sur un port en fonction de l'host destination

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour ou bonsoir en fonction de l'heure à laquelle vous verrez ce message.

Je gère un serveur pour plusieurs sites tout ce qu'il y de plus classique (php+nginx+mysql).
Jusqu'à présent aucuns problème, cependant on m'a demander de supporter des sites avec un autre serveur (Webdev en l’occurrence), pour le confort des visiteurs il est évident que je ne peux pas mettre l'un sur le port 80 et l'autre sur un autre port (8080 par exemple) les deux doivent être accessible sur le port 80.

Ma première idée était de créer des serveurs virtuel sur mon serveur physique, en achetant une nouvelle ip je n'avais qu'a rediriger une ip sur nginx et l'autre sur WebDev.
Sauf que dans l'absolu, c'est assez lourd de devoir virtualiser un serveur juste pour sa, alors qu'aujourd'hui il existe d'autre solution tel que Docker.

J'ai pris le temps de lire quelques tutoriaux sur le web afin de comprendre comment sa fonctionne, je suis en train de tester sur une machine de test chez moi voir si j'arrive à me débrouiller.

Cependant, en n'installant pas de machine virtuelle, sa va être dur de faire une redirection en fonction de l'ip pour le port 80.
Je me suis donc demandé, n'existerai t'il pas un programme, capable de lire les requêtes http (donc ce programme écouterai le port 80) et en fonctions de règles tel que le domaine demandé il redirigerait vers le port 8080 port nginx et 8081 pour webdev par exemple ?

Si un tel programme existe je n'ai aucune idée de quel mot clé je suis censé tapé sur google pour le trouver ^^

Auriez-vous une idée ?

Merci d'avance pour votre aide.
Cordialement, La source.

+0 -0

Salut,

J'ai l'impression qu'il te suffirait d'un simple script (NodeJS ou autre).

Tu as tes deux containers nginx et webdev qui attendent et tu as un container NodeJS qui reçoit toute les requêtes, qui choisit en conséquence nginx ou webdev, qui envoie la requête à x et qui retourne la réponse venant de x.

It goes against the grain of modern education to teach children to program. What fun is there in making plans, acquiring discipline in organizing thoughts, devoting attention to detail and learning to be self-critical? – Perlis

+0 -2

Cette réponse a aidé l'auteur du sujet

A priori, si j'ai bien compris ton souci, il suffirait de mettre nginx en reverse proxy devant ton deuxième serveur non ?

Tu laisses la configuration de ton premier site telle quelle et tu en crées un deuxième qui écoute un sous-domaine différent mais toujours sur le port 80 et qui redirige la requête vers ton autre serveur avec proxy_pass.

“Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.” – Rich Cook

+1 -0
Auteur du sujet

J'ignorais que nginx avait l'instruction proxy_pass, en effet, c'est ce que je cherche :)

J'ai donc chercher proxy_pass et docker (je me rend compte que j'avais mal compris comment l'utiliser, enfin… en toute honnêteté je suis pas encore sur d'avoir compris mais passons :D ), bref j'ai trouvé ce site que en parle et comme j'aime bien la structure je donne le lien au passage comme pense bête et pour ceux qui serai dans le même cas que moi.

Merci pour ton aide :)

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte