NGINX com proxy reverso ⋆ ALexHost SRL

Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills
18.12.2024
No categories

NGINX com proxy reverso

Introdução ao NGINX e ao proxy reverso

O NGINX é um servidor HTTP de alto desempenho, um servidor proxy reverso e um software de código aberto usado por muitos sites em todo o mundo. Sua versatilidade e velocidade o tornaram uma escolha popular para hospedagem na Web, balanceamento de carga, armazenamento em cache e proxy reverso. Um proxy reverso, em particular, é uma ferramenta poderosa que fica na frente de um servidor da Web e encaminha as solicitações dos clientes para os servidores de back-end apropriados. Este artigo abordará os conceitos básicos do NGINX com proxy reverso e como configurá-lo de forma eficaz.

O que é um proxy reverso?

Um proxy reverso atua como um intermediário entre os clientes e os servidores de backend. Ao contrário de um proxy comum, que é usado pelos clientes para acessar recursos de forma anônima, um proxy reverso é posicionado no lado do servidor, tratando as solicitações dos clientes e distribuindo-as para os servidores de backend apropriados. Os principais benefícios do uso de um proxy reverso incluem:

  • Balanceamento de carga: Distribuição de solicitações de clientes em vários servidores, evitando a sobrecarga em um único servidor e melhorando o desempenho geral.
  • Segurança e anonimato: ocultação dos endereços IP dos servidores de back-end, protegendo-os da exposição direta à Internet.
  • Cache: armazenamento em cache de conteúdo estático para acelerar a entrega de recursos solicitados com frequência.
  • Terminação de SSL: Descarregar a criptografia e a descriptografia SSL/TLS para o proxy reverso, reduzindo a carga de processamento nos servidores de back-end.

Por que usar o NGINX como proxy reverso?

O design leve e a arquitetura sem bloqueios do NGINX o tornam uma excelente opção para um proxy reverso. Ele pode lidar com um grande número de conexões simultâneas com baixo consumo de recursos, o que o torna ideal para sites com alto tráfego ou que precisam manter alta disponibilidade. Algumas vantagens de usar o NGINX como proxy reverso incluem:

  • Alto desempenho: O NGINX foi projetado para lidar eficientemente com um grande número de conexões, o que o torna perfeito para ambientes que exigem tempos rápidos de solicitação-resposta.
  • Flexibilidade: O NGINX permite a fácil configuração de vários servidores de back-end, possibilitando configurações complexas de balanceamento de carga e failover.
  • Escalabilidade: À medida que o tráfego aumenta, você pode adicionar mais servidores backend e equilibrar a carga sem interrupções.
  • Recursos de segurança: O NGINX pode impor conexões HTTPS, bloquear endereços IP específicos e gerenciar a autenticação.

Como configurar o NGINX como um proxy reverso

A configuração do NGINX como um proxy reverso envolve a configuração do NGINX para ouvir solicitações HTTP ou HTTPS de entrada e encaminhá-las para um ou mais servidores de back-end. Aqui está um guia passo a passo para começar:

Etapa 1: instalar o NGINX

Se você ainda não instalou o NGINX em seu servidor, comece instalando-o. Para a maioria das distribuições Linux, você pode usar o seguinte comando:

# Para Debian/Ubuntu
sudo apt update
sudo apt install nginx
# Para CentOS/RHEL
sudo yum install epel-release
sudo yum install nginx

Depois de instalado, inicie o serviço NGINX:

sudo systemctl start nginx

Etapa 2: Configuração básica do proxy reverso do NGINX

Para configurar um proxy reverso básico, você precisa editar o arquivo de configuração do NGINX, normalmente localizado em /etc/nginx/nginx.conf ou criar um novo arquivo de configuração em /etc/nginx/conf.d/. Abaixo está uma configuração simples para solicitações de proxy reverso para um servidor backend:

server {
listen 80;
nome_do_servidor exemplo.com;
location / {
proxy_pass http://backend_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

  • listen 80;: Diz ao NGINX para escutar solicitações HTTP na porta 80.
  • server_name: Substitua example.com por seu domínio ou endereço IP.
  • proxy_pass: Especifica o endereço do servidor backend para o qual as solicitações devem ser encaminhadas.
  • proxy_set_header: Define cabeçalhos adicionais a serem passados para o backend, o que pode ser útil para registro em log e segurança.

Etapa 3: proxy reverso para vários servidores de back-end

Para configurar o balanceamento de carga entre vários servidores de backend, você pode definir um bloco upstream:

backend upstream {
server backend1.example.com;
servidor backend2.example.com;
server backend3.example.com;
}
servidor {
listen 80;
nome_do_servidor exemplo.com;
localização / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

Essa configuração distribui as solicitações entre backend1.example.com, backend2.example.com e backend3.example.com de forma round-robin.

Etapa 4: habilitar SSL para conexões seguras

Para proteger a comunicação entre os clientes e o proxy reverso do NGINX, você pode ativar o SSL/TLS. Você precisará de um certificado SSL, que pode ser obtido de provedores como o Let’s Encrypt:

server {
listen 443 ssl;
nome_do_servidor exemplo.com;
ssl_certificate /path/to/ssl_certificate.crt;
ssl_certificate_key /path/to/ssl_certificate_key.key;
localização / {
proxy_pass http://backend_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

Certifique-se de substituir os caminhos para seu certificado e chave SSL. Com essa configuração, o NGINX encerrará a conexão SSL e encaminhará o tráfego para o servidor backend por HTTP.

Etapa 5: teste e reinicialização do NGINX

Depois de fazer alterações na configuração do NGINX, é importante testar a configuração para verificar se há erros de sintaxe:

sudo nginx -t

Se nenhum erro for relatado, reinicie o NGINX para aplicar as alterações:

sudo systemctl restart nginx

Configuração avançada de proxy reverso do NGINX

Para configurações mais avançadas, você pode configurar o armazenamento em cache, a reescrita de URL e algoritmos personalizados de balanceamento de carga. Aqui estão algumas opções adicionais:

  • Cache: para ativar o cache, adicione as diretivas proxy_cache em seu bloco de localização.
  • Balanceamento de carga personalizado: Use diferentes estratégias de balanceamento de carga, como least_conn, para distribuir o tráfego para o servidor de back-end com o menor número de conexões ativas.
  • Verificações de integridade: Configure verificações de integridade para garantir que o NGINX encaminhe o tráfego somente para servidores de backend íntegros usando proxy_next_upstream.

Conclusão

Usar o NGINX como proxy reverso é uma maneira poderosa de gerenciar o tráfego e melhorar a escalabilidade, o desempenho e a segurança de seus aplicativos da Web. Ao configurar o NGINX para lidar com solicitações e distribuí-las entre servidores de back-end, você pode obter uma infraestrutura altamente disponível e eficiente. Quer esteja hospedando um site pequeno ou um aplicativo de grande escala, o NGINX com recursos de proxy reverso pode ser um componente essencial da sua arquitetura.

Com este guia, você deve estar bem equipado para configurar e otimizar o NGINX como um proxy reverso para suas necessidades.

Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills