Como configurar o nginx como proxy reverso para nodejs aplicativo
- 3784
- 1116
- Randal Kuhlman
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
.
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.LANACESSO 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.
- « Como inicializar no modo de resgate ou modo de emergência no Ubuntu 20.04/18.04
- Como instalar o Php 8.0 no Ubuntu 20.04/18.04 »