Estou configurando meu primeiro Node.js
servidor em um servidor cloud Linux node
e sou bastante novo nos detalhes de Linux admin
. (BTW, não estou tentando usar o Apache ao mesmo tempo.)
Tudo está instalado corretamente, mas descobri que, a menos que eu use o root login
, não consigo ouvir o port 80
nó. No entanto, prefiro não executá-lo como root por motivos de segurança.
Qual é a melhor prática para:
- Definir boas permissões / usuário para o nó, de modo que ele seja seguro / protegido por sandbox?
- Permita que a porta 80 seja usada dentro dessas restrições.
- Inicie o nó e execute-o automaticamente.
- Manipular informações de log enviadas ao console.
- Quaisquer outras preocupações gerais de manutenção e segurança.
Devo encaminhar o tráfego da porta 80 para uma porta de escuta diferente?
obrigado
fonte
/etc/rc.local
, ele não será executado comoroot
na inicialização do sistema? Isso anularia o objetivo do redirecionamento da porta 80.Conceder permissão de usuário seguro para usar a porta 80
Lembre-se de que NÃO queremos executar seus aplicativos como usuário root, mas há um problema: seu usuário seguro não tem permissão para usar a porta HTTP padrão (80). Seu objetivo é poder publicar um site que os visitantes possam usar navegando para um URL fácil de usar, como
http://ip:port/
Infelizmente, a menos que você faça login como root, normalmente precisará usar um URL como
http://ip:port
- em que número da porta> 1024.Muitas pessoas ficam presas aqui, mas a solução é fácil. Existem algumas opções, mas é essa que eu gosto. Digite os seguintes comandos:
Agora, quando você diz a um aplicativo Node que deseja que ele seja executado na porta 80, ele não irá reclamar.
Verifique este link de referência
fonte
Solte os privilégios de root depois de ligar à porta 80 (ou 443).
Isso permite que a porta 80/443 permaneça protegida, enquanto impede que você atenda solicitações como root:
Um exemplo de trabalho completo usando a função acima:
Veja mais detalhes nesta referência completa .
fonte
Para a porta 80 (que era a pergunta original), Daniel está exatamente certo. Recentemente, mudei para
https
e tive que mudariptables
para um proxy nginx leve que gerenciava os certificados SSL. Encontrei uma resposta útil, juntamente com uma essência de gabrielhpugliese sobre como lidar com isso. Basicamente euCriou uma solicitação de assinatura de certificado SSL (CSR) via OpenSSL
Mudou o
location
em/etc/nginx/conf.d/example_ssl.conf
queFormatei o certificado para o nginx
cat
juntando os certificados individuais e vinculando -o no meuexample_ssl.conf
arquivo nginx (e coisas não comentadas, livramos-nos do 'exemplo' no nome, ...)Espero que isso possa salvar outras pessoas de dores de cabeça. Tenho certeza de que existe uma maneira de fazer nó puro, mas o nginx foi rápido e funcionou.
fonte