Skip to content

Introdução ao Nginx como Reverse Proxy

O Nginx é um servidor web de código aberto amplamente utilizado como reverse proxy, balanceador de carga e servidor web. Como reverse proxy, o Nginx pode ser configurado para encaminhar solicitações de clientes para servidores de backend, m

linux 3 min read
introducao ao nginx como reverse proxy
introducao ao nginx como reverse proxy

O Nginx é um servidor web de código aberto amplamente utilizado como reverse proxy, balanceador de carga e servidor web. Como reverse proxy, o Nginx pode ser configurado para encaminhar solicitações de clientes para servidores de backend, melhorando a segurança, o desempenho e a escalabilidade.

Antes de configurar o Nginx como reverse proxy, é necessário instalar o pacote do Nginx no Rocky Linux 9. Isso pode ser feito utilizando o gerenciador de pacotes dnf:

Terminal window
sudo dnf install -y nginx

Após a instalação, é possível iniciar o serviço do Nginx e habilitá-lo para iniciar automaticamente após a inicialização do sistema:

Terminal window
sudo systemctl start nginx
sudo systemctl enable nginx

Para configurar o Nginx como reverse proxy, é necessário criar ou modificar o arquivo de configuração do Nginx. O arquivo de configuração principal do Nginx é o /etc/nginx/nginx.conf.

Aqui está um exemplo de configuração básica do Nginx como reverse proxy:

http {
server {
listen 80;
server_name exemplo.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}

Nesse exemplo, o Nginx está configurado para ouvir na porta 80 e encaminhar solicitações para o servidor de backend que está rodando na porta 8080 no mesmo host.

Se você tiver múltiplos servidores de backend, é possível configurar o Nginx para distribuir as solicitações entre eles. Isso pode ser feito utilizando a diretiva upstream:

http {
upstream backend {
server localhost:8080;
server localhost:8081;
}
server {
listen 80;
server_name exemplo.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}

Nesse exemplo, o Nginx está configurado para distribuir as solicitações entre dois servidores de backend que estão rodando nas portas 8080 e 8081.

O Nginx também pode ser configurado para realizar autenticação e autorização das solicitações. Isso pode ser feito utilizando a diretiva auth_basic:

http {
server {
listen 80;
server_name exemplo.com;
location / {
auth_basic "Área restrita";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}

Nesse exemplo, o Nginx está configurado para solicitar autenticação básica para acessar a área restrita. O arquivo /etc/nginx/.htpasswd contém as credenciais de autenticação.

Aqui estão algumas dicas práticas e armadilhas comuns ao configurar o Nginx como reverse proxy:

  • Certifique-se de que o Nginx esteja configurado para ouvir na porta correta e que o servidor de backend esteja rodando na porta correta.
  • Utilize a diretiva proxy_set_header para definir os cabeçalhos de solicitação que devem ser encaminhados para o servidor de backend.
  • Utilize a diretiva upstream para distribuir as solicitações entre múltiplos servidores de backend.
  • Certifique-se de que o arquivo de configuração do Nginx esteja corretamente formatado e que não haja erros de sintaxe.

Aqui estão os passos sequenciais para configurar o Nginx como reverse proxy:

  1. Instale o pacote do Nginx no Rocky Linux 9 utilizando o gerenciador de pacotes dnf.
  2. Inicie o serviço do Nginx e habilitá-lo para iniciar automaticamente após a inicialização do sistema.
  3. Crie ou modifique o arquivo de configuração do Nginx (/etc/nginx/nginx.conf) para configurar o Nginx como reverse proxy.
  4. Certifique-se de que o servidor de backend esteja rodando e configurado corretamente.
  5. Teste a configuração do Nginx como reverse proxy acessando o servidor de backend através do Nginx.

Agora que você configurou o Nginx como reverse proxy, é possível prosseguir com a configuração de outros recursos do Nginx, como balanceamento de carga e autenticação. Além disso, é importante garantir que o servidor de backend esteja configurado corretamente e que o Nginx esteja monitorado e mantido regularmente para garantir a estabilidade e a segurança do sistema.