fbpx Nginx no Linux: Configurar Virtual Hosts, Proxy e SSL (Guia) | Certificação Linux

Nginx no Linux: Virtual Hosts, Proxy Reverso e SSL com Let's Encrypt

📅 19/07/2026 ⏱ 4 min ✍️ Uira Ribeiro
Nginx no Linux: Virtual Hosts, Proxy Reverso e SSL com Let's Encrypt
Exam Pass App — mais de 7.000 questões LPI, offline, em 5 idiomas, disponível no Android e na App Store
Disponível no
Google Play
Disponível na
App Store

Nginx (pronuncia-se "engine-x") é o servidor web e proxy reverso mais usado no mundo, presente em mais de 34% dos sites com servidor web ativo. Ele supera o Apache em performance com conexões simultâneas por consumir muito menos memória por requisição.

Instalação

# Ubuntu/Debian
sudo apt update && sudo apt install nginx -y

# CentOS/RHEL/Rocky
sudo dnf install nginx -y

# Iniciar e habilitar
sudo systemctl enable --now nginx

# Verificar status
sudo systemctl status nginx

# Testar no browser: http://SEU_IP → página padrão do Nginx

Estrutura de Diretórios

/etc/nginx/
├── nginx.conf              # configuração principal
├── sites-available/        # blocos de servidor disponíveis
├── sites-enabled/          # links simbólicos para os ativos
├── conf.d/                 # configurações extras (alternativa ao sites-*)
└── snippets/               # trechos reutilizáveis (SSL, fastcgi, etc.)

/var/log/nginx/
├── access.log              # todas as requisições
└── error.log               # erros e avisos

Virtual Host (Server Block)

Um virtual host permite servir múltiplos domínios no mesmo servidor:

# /etc/nginx/sites-available/meusite.com.br
server {
    listen 80;
    listen [::]:80;
    server_name meusite.com.br www.meusite.com.br;

    root /var/www/meusite.com.br;
    index index.html index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    access_log /var/log/nginx/meusite.access.log;
    error_log  /var/log/nginx/meusite.error.log;
}
# Ativar o site
sudo ln -s /etc/nginx/sites-available/meusite.com.br            /etc/nginx/sites-enabled/

# Verificar sintaxe antes de recarregar
sudo nginx -t

# Recarregar sem derrubar conexões ativas
sudo systemctl reload nginx

Proxy Reverso para Node.js / Python / Qualquer App

O uso mais comum do Nginx em ambientes modernos é como proxy reverso: ele recebe a requisição na porta 80/443 e repassa para a aplicação rodando em outra porta:

server {
    listen 80;
    server_name api.meusite.com.br;

    location / {
        proxy_pass         http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade    $http_upgrade;
        proxy_set_header   Connection 'upgrade';
        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_cache_bypass $http_upgrade;
    }
}

Este bloco funciona com Node.js, FastAPI (Python), Laravel (PHP via FPM), Rails, etc. Basta trocar a porta em proxy_pass.

HTTPS gratuito com Let's Encrypt

# Instalar Certbot
sudo apt install certbot python3-certbot-nginx -y

# Obter certificado e configurar Nginx automaticamente
sudo certbot --nginx -d meusite.com.br -d www.meusite.com.br

# Certbot adiciona automaticamente:
#   listen 443 ssl;
#   ssl_certificate / ssl_certificate_key
#   redirect de HTTP → HTTPS

# Renovação automática (já configurada via cron/systemd timer)
sudo certbot renew --dry-run

Configurações de Performance

# Em nginx.conf, dentro do bloco http {}

# Compressão gzip
gzip on;
gzip_types text/plain text/css application/json application/javascript
           text/xml application/xml image/svg+xml;
gzip_min_length 1024;

# Cache de arquivos estáticos
server {
    location ~* \.(jpg|jpeg|png|webp|avif|gif|ico|css|js|woff2)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
    }
}

Comandos Essenciais

sudo nginx -t              # testa configuração (sempre antes de recarregar)
sudo systemctl reload nginx # recarrega sem derrubar conexões
sudo systemctl restart nginx # reinicia completamente
sudo nginx -s quit         # encerra graciosamente

# Ver erros em tempo real
sudo tail -f /var/log/nginx/error.log

# Ver requisições em tempo real
sudo tail -f /var/log/nginx/access.log

Nginx vs Apache

O Nginx usa arquitetura baseada em eventos (assíncrona), o que significa que uma única thread consegue lidar com milhares de conexões simultâneas. O Apache usa uma thread ou processo por conexão — ótimo para compatibilidade com módulos como mod_php, mas mais pesado em escala. Para servidores modernos com proxy reverso ou alta carga estática, Nginx é a escolha padrão.

Nginx e a Certificação LPI

O exame LPIC-2 (tópico 208) cobre instalação e configuração de servidores web, incluindo Nginx. Dominar virtual hosts, proxy reverso e SSL já cobre a maior parte do que é cobrado — e você ainda ganha um skill muito pedido em vagas de sysadmin e DevOps.

Uira Ribeiro

Prof. Uirá Ribeiro

Chair do Board do Linux Professional Institute

Depois de anos vendo profissionais perderem horas em tarefas simples por não conhecer as ferramentas certas do Linux, decidi ensinar.
Hoje sou autor da maioria dos Materiais de Aprendizado oficiais da LPI e mentor de mais de 14.000 alunos certificados.

Conheça minha história completa →

Isso foi só uma peça. O curso ensina o caminho completo — do primeiro comando ao dia da prova.

Certificação Linux — a plataforma líder em certificações Linux no Brasil
WhatsApp