
Nginxé o servidor web e proxy reverso mais usado em 2026. Ele lida com milhões de solicitações por segundo, encerra SSL, equilibra carga de back-end e fornece arquivos estáticos na velocidade do sistema operacional. Este guia cobre o Nginx desde a instalação até a configuração de produção com SSL e cache.
📋 Table of Contents
Instale o Nginx
# Ubuntu/Debian
sudo apt install nginx
sudo systemctl enable nginx
sudo systemctl start nginx
# Check status
sudo nginx -t # test config
sudo systemctl status nginx
# Config location
ls /etc/nginx/sites-available/
Proxy reverso básico
Encaminhe o tráfego da porta 80 para seu aplicativo em execução na porta 8000.
# /etc/nginx/sites-available/myapp
server {
listen 80;
server_name example.com www.example.com;
location / {
proxy_pass http://127.0.0.1:8000;
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;
}
}
# Enable site
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
SSL com Let’s Encrypt (Grátis)
# Install Certbot
sudo apt install certbot python3-certbot-nginx
# Obtain and install SSL
sudo certbot --nginx -d example.com -d www.example.com
# Auto-renewal (already added to cron by certbot)
sudo certbot renew --dry-run
Certbot modifica automaticamente sua configuração Nginx para adicionar redirecionamento HTTPS e HTTP para HTTPS.
Configuração completa de produção com SSL
# HTTP -> HTTPS redirect
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
# HTTPS server
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
# Security headers
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header Strict-Transport-Security 'max-age=31536000' always;
# Proxy to app
location / {
proxy_pass http://127.0.0.1:8000;
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_read_timeout 60s;
proxy_connect_timeout 10s;
}
# Static files served directly by Nginx
location /static/ {
alias /var/www/myapp/static/;
expires 1y;
add_header Cache-Control 'public, immutable';
}
}
Balanceamento de carga
upstream myapp_backend {
least_conn; # send to least busy server
server 10.0.0.1:8000;
server 10.0.0.2:8000;
server 10.0.0.3:8000;
}
server {
listen 443 ssl http2;
location / {
proxy_pass http://myapp_backend;
}
}
Limitação de taxa
# In http block (nginx.conf)
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
# In server block
location /api/ {
limit_req zone=api burst=20 nodelay;
proxy_pass http://127.0.0.1:8000;
}
Conclusão
Nginx é o padrão de produção por um motivo: rápido, estável e flexível. Use-o como proxy reverso na frente de qualquer aplicativo (FastAPI, Django, Node, Rails). Adicione Certbot para SSL gratuito, configure a limitação de taxa e forneça arquivos estáticos diretamente para desempenho máximo.
🔗 Share this article
✍️ Leave a Comment