Como configurar o nginx como proxy reverso para nodejs aplicativo

Como configurar o nginx como proxy reverso para nodejs aplicativo

Nodejs é uma estrutura JavaScript de código aberto gratuito, leve, escalável e eficiente, construído no mecanismo JavaScript V8 do Chrome e usa um modelo de E/S sem bloqueio de eventos e sem bloqueio. Nodejs está agora em toda parte e se tornou tão popular para desenvolver software de sites, aplicativos da web a aplicativos de rede e mais.

Nginx é um servidor HTTP de código aberto, de alto desempenho, balanceador de carga e software de proxy reverso. Tem uma linguagem de configuração direta, facilitando a configuração. Neste artigo, mostraremos como configurar o nginx como um proxy reverso para aplicativos NodeJS.

Leia também: O guia final para proteger, endurecer e melhorar o desempenho do Nginx Web Server

Observação: Se o seu sistema já está funcionando com Nodejs e Npm, e peça ao seu aplicativo em uma determinada porta, vá direto para Passo 4.

Etapa 1: Instalando NodeJs e NPM no Linux

A versão mais recente de Nó.JS e Npm está disponível para instalação a partir do repositório oficial de distribuições binárias do Nodesource Enterprise Linux, Fedora, Debian e Ubuntu, que é mantido pelo site do NodeJS e você precisará adicioná -lo ao seu sistema para poder instalar os pacotes mais recentes de NodeJs e NPM, como mostrado.

No Debian/Ubuntu

---------- Instale o nó.JS v11.x ---------- $ curl -sl https: // Deb.Sodesource.com/setup_11.x | sudo -e bash -$ sudo apt -get install -y nodejs ---------- Instale o nó.JS V10.x ---------- $ curl -sl https: // Deb.Sodesource.com/setup_10.x | sudo -e bash -$ sudo apt -get install -y nodejs 

No CentOS/Rhel e Fedora

---------- Instale o nó.JS v11.x ---------- $ curl -sl https: // rpm.Sodesource.com/setup_11.x | Bash - ---------- Instale o nó.JS V10.x ---------- $ curl -sl https: // rpm.Sodesource.com/setup_10.x | Bash - 

Etapa 2: Criando um aplicativo NodeJS

Para fins de demonstração, criaremos um aplicativo de amostra chamado “Sysmon”, que será executado na porta 5000 como mostrado.

$ sudo mkdir -p/var/www/html/sysmon $ sudo vim/var/www/html/sysmon/servidor.JS 

Copie e cole o seguinte código no servidor.JS arquivo (substitua 192.168.43.31 com o seu servidor IP).

const http = requer ('http'); const hostName = '192.168.43.31'; const porta = 5000; const server = http.createServer ((req, res) => res).statusCode = 200; res.setheader ('conteúdo-tipo', 'texto/simples'); res.final ('Sysmon App está em funcionamento!\ n '); ); servidor.Ouça (Port, HostName, () => Console.log ('servidor em execução em http: // $ hostName: $ porta/'); ); 

Salve o arquivo e saia.

Agora inicie seu aplicativo de nó usando o seguinte comando (pressione Ctrl+x para encerrá -lo).

$ sudo nó/var/www/html/sysmon/servidor.JS ou $ sudo nó/var/www/html/sysmon/servidor.JS & #Start It em segundo plano para liberar seu terminal 

Agora abra um navegador e acesse seu aplicativo no URL http: // 198.168.43.31: 5000.

Aplicativo de acesso do navegador

Etapa 3: Instale o proxy reverso nginx no Linux

Vamos instalar a versão mais recente de Nginx do repositório oficial, como mostrado abaixo.

No Debian/Ubuntu

Crie um arquivo chamado /etc/apt/fontes.lista.d/nginx.lista e adicione as seguintes linhas a ele.

Deb http: // nginx.org/packages/ubuntu/bionic nginx Deb-src http: // nginx.org/packages/ubuntu/bionic nginx 

Em seguida, adicione a tecla de assinatura do repositório, atualize o índice do seu pacote do sistema e instale o pacote nginx da seguinte forma.

$ wget --quiet http: // nginx.org/keys/nginx_signing.key && sudo apt-key adicione nginx_signing.key $ sudo apt update $ sudo apt install nginx 

No CentOS/Rhel e Fedora

Crie um arquivo chamado /etc/yum.Repos.d/nginx.repo e cole uma das configurações abaixo.

CENTOS
[nginx] Nome = nginx repo Baseurl = http: // nginx.org/pacotes/centos/$ releasever/ $ Basearch/ gpgcheck = 0 habilitado = 1
RHEL
[nginx] Nome = nginx repo Baseurl = http: // nginx.org/pacotes/rhel/$ releasever/ $ Basearch/ gpgcheck = 0 habilitado = 1

Observação: Devido a diferenças entre como o CentOS e Rhel, é necessário substituir $ releasever com qualquer um 6 (para 6.x) ou 7 (para 7.x), dependendo da sua versão do sistema operacional.

Em seguida, adicione a tecla de assinatura do repositório e instale o pacote nginx, como mostrado.

# wget --quiet http: // nginx.org/keys/nginx_signing.key && rpm --import nginx_signing.chave # yum install nginx 

Depois de instalar com sucesso Nginx, Inicie-o, ative-o para iniciar automaticamente na inicialização do sistema e verifique se está em funcionamento e em funcionamento.

---------- No Debian/Ubuntu ---------- $ sudo Systemctl status nginx $ sudo systemctl Ativar nginx $ sudo syst4 status nginx ---------- No CentOS/Rhel ---------- # status Systemctl nginx # SystemCtl Ativar nginx # status SystemCtl nginx 

Se você estiver executando um firewall do sistema, precisa abrir a porta 80 (http), 443 (https) e 5000 (aplicativo do nó), que o servidor da web ouve para solicitações de conexão do cliente.

---------- No Debian/Ubuntu ---------- $ sudo ufw permitir 80/tcp $ sudo ufw permitir 443/tcp $ sudo ufw permitir 5000/tcp $ sudo ufw recar ---------- No CentOS/Rhel ---------- # firewall-cmd --permanent --add-port = 80/tcp # firewall-cmd --permanent --add-port = 443/tcp # firewall-cmd --permanent --add-port = 5000/tcp # firewall -CMD - -Reload 

Etapa 4: Configure o nginx como proxy reverso para aplicativo NodeJS

Agora crie um arquivo de configuração de bloco de servidor para o seu aplicativo de nó em /etc/nginx/conf.d/ como mostrado.

$ sudo vim/etc/nginx/conf.D/Sysmon.conf 

Copie e cole a seguinte configuração (altere 192.168.43.31 com o seu servidor IP e Tecmint.LAN com seu nome de domínio).

servidor ouça 80; nome do servidor Sysmon.Tecmint.LAN; localização / proxy_set_header x forwarded-for $ remote_addr; proxy_set_header host $ http_host; proxy_pass http: // 192.168.43.31: 5000;  

Salve as alterações e saia do arquivo.

Finalmente, reinicie o serviço Nginx para efetuar as mudanças recentes.

$ sudo systemctl reiniciar nginx ou # systemctl reiniciar nginx 

Etapa 5: Access Nodejs Application via navegador da web

Agora você deve acessar seu aplicativo de nó sem fornecer a porta em que está ouvindo, no URL: essa é uma maneira muito conveniente para os usuários acessá -lo.

http: // sysmon.Tecmint.LAN 

Para que o seu nome de domínio de teste funcione, você precisa configurar o DNS local usando o /etc/hosts Arquivo, abra -o e adicione a linha abaixo (lembre -se de mudar 192.168.43.31 com o seu servidor IP e Tecmint.LAN com o seu nome de doamin como antes).

192.168.43.31 Sysmon.Tecmint.LAN 
ACESSO NODE APP

Isso é tudo! Neste artigo, mostramos como configurar o nginx como um proxy reverso para aplicativos NodeJS. Use o formulário de feedback abaixo para fazer qualquer pergunta ou compartilhar seus pensamentos sobre este artigo.