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

Especialista Linux com mais de 20 anos de experiência.
Autor de 5 livros e mentor de mais de 14.000 alunos certificados.
20 certificações de alto nível, incluindo LPIC-3, CKA, RHCE e AWS Solutions Architect.

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