3 votes

Deux ordinateurs avec une application fonctionnant sur le même port

Je me suis renseigné sur le transfert de port et j'ai compris qu'il permettait à l'internet d'envoyer des requêtes vers votre réseau privé et d'accéder à un service qui fonctionne sur l'un des ordinateurs de votre adresse privée.

Mais je me demande ce qui va se passer si j'ai deux ordinateurs qui hébergent un serveur web sur le port 80. Dans ce cas, comment le routeur saura-t-il quel ordinateur envoyer la requête ? Je sais que s'il n'y a qu'un seul ordinateur, le routeur le saura, mais je doute qu'il le sache s'il y en a deux.

Par exemple, j'ai deux ordinateurs sur mon réseau privé et chacun héberge un site web différent. Maintenant, je veux que mes deux serveurs fonctionnent sur le port 80 afin que l'utilisateur n'ait pas besoin de taper le numéro du port ( ou peut-être que pour une raison quelconque, je veux que les deux serveurs web aient le même numéro de port. ). Que se passe-t-il maintenant ?

0 votes

Il est possible que l'uPNP ouvre automatiquement la redirection de port de votre routeur et que le premier ordinateur soit accessible depuis Internet. Si un deuxième ordinateur fait de même, uPNP sera simplement ignoré et le premier ordinateur restera actif. Pour contrer cela, consultez l'une des réponses ; des règles manuelles de transfert de port sont nécessaires.

0 votes

@LPChip Même le transfert de port manuel ne permettra pas de gérer la situation que j'ai décrite dans ma question. Elle peut être résolue en utilisant un proxy inverse, veuillez lire la réponse et les commentaires de "Dark Android".

8voto

Darth Android Points 36975

Le routeur s'en moque. Vous devez lui indiquer lequel des deux ordinateurs doit être transféré, et il ignore l'autre.

Si vous voulez que les deux ordinateurs soient accessibles sur Internet, vous devez transférer deux ports différents (c'est-à-dire, 80 y 81 ) sur le routeur, un pour chacun des deux ordinateurs.


Si vous voulez que les utilisateurs n'aient pas à saisir le numéro de port lorsqu'ils naviguent sur l'un ou l'autre des sites Web, vous devez configurer un proxy inverse comme suit nginx quelque part derrière le routeur (sur un troisième ordinateur, ou sur l'un des deux premiers), et faites en sorte que le routeur fasse suivre au proxy. Le proxy peut alors être configuré pour examiner l'URI auquel le client a essayé d'accéder (le nom d'hôte est le plus courant, recherchez "webserver virtual hosts", mais vous pouvez baser la décision sur d'autres parties de l'URI comme le chemin), et transmettre la demande à l'un des serveurs d'origine (qui peut fonctionner sur n'importe quel port).

0 votes

Ou vous pouvez configurer un serveur web pour qu'il transfère les demandes à l'autre serveur web en fonction de l'adresse de l'utilisateur. Host en-tête. Vous indiquez au routeur de transmettre les connexions entrantes au port TCP 80 à ce serveur Web.

0 votes

@DavidSchwartz Non, je ne pense pas que ce soit bon. Par je veux qu'un serveur soit surchargé à cause d'un autre serveur, juste pour décider que c'est en fait une demande pour un autre serveur.

0 votes

@hagrawal Vous imaginez un super routeur et les deux serveurs anémiques ? Pourquoi ? Cherchez-vous simplement à résoudre des problèmes qui sont difficiles à résoudre ? Cette décision doit sûrement être prise quelque part, non ?

1voto

gronostaj Points 50460

La redirection de port transfère les connexions entrantes du port du routeur vers une adresse IP spécifique de votre réseau local. Il ne détecte pas par magie les machines de votre réseau qui exécutent le service requis, vous devez le configurer manuellement en configurant le transfert de port.

Voici comment cela se présente dans le panneau de configuration de mon routeur :

Screenshot

0 votes

+1 pour vos informations mais vous n'avez pas répondu à ma question. Ma question est la suivante : si deux ordinateurs exécutent le même serveur et sur le même port, comment cette situation sera-t-elle gérée ? Peut-on la gérer en utilisant le transfert de port ou existe-t-il une autre méthodologie pour gérer cette situation ?

1voto

barlop Points 21549

Je pense que votre intuition est correcte.

Je ne pense pas qu'il puisse savoir/décider via la redirection de port. Vous ne pouvez transférer le port que vers l'un des ordinateurs, et cela doit être décidé par votre configuration du routeur, c'est-à-dire que vous décidez si l'ordinateur A doit être celui vers lequel le routeur transfère les requêtes sur le port 80, ou si c'est l'ordinateur B qui doit l'être.

0 votes

Ok, et maintenant, quelle est la suite ? Comment cette situation va-t-elle être gérée ? Peut-on la traiter en utilisant le transfert de port ou existe-t-il une autre méthodologie pour gérer cette situation ?

0 votes

@hagrawal Comme pour toute redirection de port, vous indiquez au routeur NAT une IP privée comme 192.168.1.4(CompA) ou 192.168.1.7(CompB). Le routeur peut vous laisser spécifier une adresse MAC ou un nom, mais c'est le même principe, il ne peut aller que vers un seul ordinateur et c'est celui que vous avez spécifié dans le routeur pour qu'il y aille.

0 votes

Ok, j'ai compris ce point. Voici une situation dans laquelle j'ai deux ordinateurs sur mon réseau privé et chacun héberge un site web différent. Maintenant, je veux que mes deux serveurs fonctionnent sur le port 80 afin que l'utilisateur n'ait pas besoin de taper le numéro du port. Que se passe-t-il alors ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X