Como configurar o proxy reverso nginx um tutorial passo a passo

Como configurar o proxy reverso nginx um tutorial passo a passo

Um proxy reverso é um tipo de servidor que fica entre um cliente e um servidor, atuando como um intermediário entre os dois. Ele aceita as solicitações dos clientes, encaminha essas solicitações para o servidor apropriado e depois retorna a resposta do servidor ao cliente.

Os proxies reversos são frequentemente usados ​​para melhorar o desempenho e a segurança dos servidores da Web e permitir que vários servidores apareçam como um único servidor para clientes. Por exemplo, um proxy reverso pode ser usado para distribuir solicitações recebidas a vários servidores, para armazenar conteúdo estático para melhorar o desempenho ou criptografar e descriptografar o tráfego para fins de segurança.

Um software popular para configurar um proxy reverso é o nginx (pronuncia -se "motor X"). Neste artigo, discutiremos como configurar um proxy reverso com o nginx usando um exemplo.

Etapa 1: Instale o nginx

O primeiro passo é instalar o nginx em seu servidor. Isso normalmente pode ser feito usando o gerenciador de pacotes do seu sistema operacional (e.g. APT-Get em sistemas baseados no Debian, DNF em sistemas baseados em Red Hat).

sudo apt update && sudo apt install nginx  
sudo dnf install nginx  

Etapa 2: configure o aplicativo de back -end

Um aplicativo de back -end deve estar ouvindo em outra porta. Por exemplo, eu criei um nó de amostra.Aplicativo JS que serve solicitações recebidas usando o módulo Node Express. Este aplicativo está ouvindo localhost e porta 3000.

servidor do nó.JS 
Debugger de saída ouvindo na porta 5858 servidor em execução em http: // 127.0.0.1: 3000/ 

Etapa 3: Configure o bloco do servidor nginx

O NGINX usa blocos de servidor para configurar sites individuais. Precisamos criar um novo arquivo de configuração de bloco de servidor para nosso proxy reverso.

sudo nano/etc/nginx/conf.D/Proxi reverso.conf  

Adicione a seguinte configuração ao arquivo de configuração do bloco do servidor:

servidor ouça 80; Exemplo server_name.com; Localização/proxy_pass http: // 127.0.0.1: 3000; proxy_set_header host $ host; proxy_set_header x-real-ip $ remote_addr; proxy_set_header x forwarded para $ proxy_add_x_forwarded_for;
1234567891011servidor ouça 80; Exemplo server_name.com; Localização/proxy_pass http: // 127.0.0.1: 3000; proxy_set_header host $ host; proxy_set_header x-real-ip $ remote_addr; proxy_set_header x forwarded para $ proxy_add_x_forwarded_for;

No arquivo de configuração acima:

  • Ouça 80; define a porta em que o Nginx ouvirá as conexões de entrada.
  • Exemplo server_name.com; é o nome de domínio que será usado para acessar o proxy reverso.
  • proxy_pass http: // backend-sever; diz ao Nginx para encaminhar as solicitações recebidas para o servidor de back -end especificado.
  • proxy_set_header host $ host; e proxy_set_header x-real-ip $ remote_addr; e proxy_set_header x forwarded-for $ proxy_add_x_forwarded_for; são usados ​​para definir cabeçalhos que o servidor de back -end pode usar para identificar o cliente original.

Etapa 4: reinicie o nginx

Antes de reiniciar o serviço Nginx, teste os arquivos de configuração usando o seguinte comando:

sudo nginx -t  

Se o teste de configuração for bem -sucedido, reinicie o nginx para aplicar as alterações:

sudo systemctl reiniciar nginx  

Nota: Este é um exemplo básico e, na realidade, pode ser necessário definir outras configurações, como SSL, cache e segurança. Você também pode precisar configurar o Nginx para lidar com diferentes tipos de solicitações, como lidar com WebSockets ou servir arquivos estáticos. Além disso, também é importante considerar o desempenho e a escalabilidade do seu proxy reverso Nginx, especialmente se você espera um alto volume de tráfego.

Para proteger seu proxy reverso, você pode usar certificados SSL. Você pode usar o Let's Encrypt para obter um certificado SSL gratuito. Depois de ter o certificado, você pode configurar o nginx para usá -lo.

Para armazenamento em cache, você pode usar as diretivas proxy_cache_path e proxy_cache_bypass para configurar o cache para o seu proxy reverso.

Conclusão

Em conclusão, o proxy reverso nginx pode ser uma ferramenta poderosa para gerenciar vários servidores da web e melhorar o desempenho e a segurança de seus aplicativos da web. Espero que este tutorial tenha lhe fornecido um bom ponto de partida para configurar seu próprio proxy reverso nginx.