A comunicação precisa ser roteada para duas portas diferentes se você tiver dois servidores diferentes exatamente no mesmo IP externo. por exemplo. 119.1.1.1:9000 para o servidor A e 119.1.1.1:9001 para o servidor B
Se você não quer que o usuário final coloque 119.1.1.1:9000 e deseja ter ambos os servidores na porta 80 - isso deve ser feito assim: use um proxy interno que ouça na porta 80 e encaminhe as solicitações recebidas com base no subdomínio ou domínio para o ip "interno" correto de cada um dos seus dois servidores (ou "x" número de servidores, para esse assunto).
EXEMPLO:
ASSUME:
- 119.1.1.1:80 é o PORTAL 80 LISTENER
- 119.1.1.1:9000 para o servidor A e
- 119.1.1.1:9001 para o servidor B
Então configure assim:
- foo.com na porta 80 (119.1.1.1:80)
- serverA.foo.com vai para a porta 80 (119.1.1.1:80) e internamente encaminhar pedido (não redirecionar, mas internamente rota transparente) para 119.1.1.1:9000 com base no subdomínio dizendo "serverA"
- serverB.foo.com também vai para a porta 80 (119.1.1.1:80), direciona de forma transparente para 119.1.1.1:9001 com base no subdomínio dizendo "serverB"
- todas as outras solicitações são tratadas pelo roteador, no entanto, você desmama - elas podem ser rejeitadas e retornar 404 por exemplo (por exemplo, foo.com ou serverXYZ.foo.com retornam erro 404 porque não corresponde a nenhuma definição na tabela de proxy) .
NOTA: Pelo acima, você está realmente trabalhando em 119.1.1.1 - bem, então as definições da tabela proxy devem dizer 127.0.0.1 por exemplo:
- serverA.foo.com - > 127.0.0.1:9000
- serverB.foo.com - > 127.0.0.1:9001
- padrão - > 127.0.0.1:9002
Roteando de forma transparente o usuário final não sabe que a comunicação é roteada - está acontecendo no lado do servidor sem o conhecimento do usuário final - apenas VOCÊ está ciente. Você pode fazer isso com o node-http-proxy para o Node.js - você pode fazer isso com o nginx - você pode fazer com a maioria dos servidores lá fora - procure como fazer proxy interno de solicitações nos documentos do seu servidor.
Se você precisar usar a mesma porta, precisará usar dois endereços IP diferentes. 119.1.1.1:80 para o servidor A e 119.121.1.2:80 para o servidor B