Como posso forçar cada usuário a usar apenas um número de porta exclusivo no Node.js?

0

Então eu configurei o NGINX para servir sites estáticos por usuário no GNU / Linux Debian 8, usando a seguinte convenção de nomenclatura: http://domain/~username . A pasta da Web pública de cada usuário está localizada em seu respectivo diretório inicial e também é onde eles deverão manter seus projetos do Node.js.

Problema

Tudo isso é bom, no entanto, como posso impedir que usuários diferentes iniciem projetos que usam números de portas de colisão no mesmo domínio? Ou mais sucintamente, como posso forçar cada usuário a usar apenas um número de porta exclusivo no Node.js? Ou eu preciso mesmo? A instância de Node.js de um usuário pode ser capturada de alguma forma e, em seguida, traduzida em algo aderente à convenção de nomenclatura acima? Se sim, como?

Exemplo: Se o usuário JSmith criar um site usando o Node.js e executá-lo, o site deverá ser publicado em www.example.com/~jsmith , independentemente de outras configurações de domínio ou porta que o JSmith tenha usado em seu aplicativo Node.js.

    
por Kebman 25.02.2017 / 17:29

1 resposta

0

O Node.js geralmente age como seu próprio servidor HTTP, certo? Portanto, se todos eles executarem seus projetos node.js no mesmo servidor Ubuntu, e supondo que nem todos têm root privs, eles abrirão as portas listener TCP no intervalo de portas efêmeras (49152–65536) no IP desse servidor. endereço (s). A pilha TCP / IP do kernel Linux do Ubuntu garantirá que dois processos ativos não abram a mesma porta ao mesmo tempo. Para se conectar às instâncias do aplicativo node.js, eles precisarão se conectar ao link (onde porta é qualquer porta que eles puderam abrir).

    
por 26.02.2017 / 01:19