Roteamento para vários servidores node.js na mesma máquina

5

Eu gostaria de configurar vários servidores node.js na mesma máquina (mas escutando em portas diferentes) para projetos diferentes (para que eu possa puxar qualquer para baixo para editar o código sem afetar os outros). No entanto, quero poder acessar esses aplicativos da web a partir de um navegador sem digitar o número da porta e, em vez disso, mapear URLs diferentes para portas diferentes: por exemplo, 45.23.12.01/app - > 45.23.12.01:8001.

Eu considerei usar o node-http-proxy para isso, mas ele ainda não suporta SSL . Meu palpite é que o nginx pode ser o mais adequado. Eu nunca configurei o nginx antes - que configuração preciso fazer? Os exemplos de arquivos de configuração que vi apenas lidam com subdomínios, que eu não tenho.

Alternativamente, existe uma maneira melhor (estável e livre de problemas) de hospedar vários aplicativos sob o mesmo endereço IP?

    
por Dtang 03.12.2010 / 07:08

2 respostas

7

Primeiro comece lendo a documentação do wiki . É muito completo e inclui amostras. Eu não vou te dar uma configuração nginx inteira, mas aqui está a parte relevante para sua pergunta.

server {
    listen 80;
    server_name example.com;

    location /foo {
        proxy_pass http://localhost:9000;
    }

    location /bar {
        proxy_pass http://localhost:9001;
    }

    location /baz {
        proxy_pass http://localhost:9002;
    }
}

Deve ficar claro o que está acontecendo lá. Cada local faz o proxy do URI especificado para o backend node.js apropriado.

    
por 08.03.2011 / 09:12
1

O nginx pode ser o caminho a seguir. Pelo menos, é isso que tenho em execução no meu servidor. Um exemplo de configuração / descrição pode ser encontrado aqui: link

Você basicamente configura sites diferentes no nginx e cada site roteia seu tráfego para um aplicativo nodejs em execução em uma porta diferente.

    
por 08.03.2011 / 08:13

Tags