node.js & nginx

Proxy Reverso com Nginx + Node.js

  • ligeiro Deividy Metheler Zachetti
  • 2024-07-21
blog-detail-hero

Olá, sou o Ligeiro e neste post vou explicar como configurar múltiplos sites usando NGINX.

Começarei conectando no meu domínio usando o IP, que está hospedado em uma máquina Ubuntu na Amazon. Para melhorar a legibilidade, vou alterar o hostname da máquina usando o comando sudo hostnamectl set-hostname <nome-desejado>.

Agora, vamos configurar o NGINX para servir sites diferentes para cada domínio. Primeiro, precisamos instalar o Node.js na máquina, para hospedar nossas aplicações. Baixaremos o binário do Linux na versão mais recente, usando o comando wget <link-do-arquivo>. Depois, descompactaremos e movemos o arquivo para uma pasta na raiz do sistema, como /root/Node.

Para garantir que o Node esteja sempre disponível, adicionaremos o diretório binário do Node às variáveis de ambiente, editando o arquivo /etc/environment e adicionando a seguinte linha: NODE_HOME=<caminho-para-o-node>.

Agora, criei uma aplicação de exemplo em Node.js, app1.js, que será executada na porta 5000. Para deixar a aplicação rodando em background, usaremos o comando nohup node app1.js &.

Para configurar o NGINX, precisamos criar um arquivo de configuração para cada site no diretório /etc/nginx/sites-available/. O arquivo deve conter a seguinte estrutura básica:

server {
    listen 80;
    server_name <nome-do-seu-site>;

    location / {
        proxy_pass http://localhost:<porta-da-sua-aplicacao>;
    }
}

Após criar o arquivo, precisamos criar um link simbólico para ele no diretório /etc/nginx/sites-enabled/ usando o comando ln -s /etc/nginx/sites-available/<seu-arquivo> /etc/nginx/sites-enabled/.

Por fim, reinicie o serviço NGINX usando o comando sudo systemctl restart nginx.

Repita o processo para cada site que deseja hospedar, alterando o nome do site e a porta da aplicação.

Este é o processo básico para configurar o NGINX como proxy reverso para aplicativos Node.js. Espero que tenha gostado do tutorial e não esqueça de compartilhar e se inscrever no canal! Até a próxima.


Esse blog post foi escrito utilizando AI ( especificamente whisper-large ) com o projeto https://github.com/S4mpl3r/youtube2blog.

O vídeo abaixo foi transcrito e utilizado como base para gerar o texto: