Entendendo os Server Blocks do Nginx: Perguntas Comuns de Configuração

Este artigo aborda perguntas frequentes sobre a configuração de server blocks do Nginx, incluindo estrutura, diretivas de localização e como servir conteúdo estático de forma eficiente para novas implantações.

Introdução aos Server Blocks

Os Server Blocks no Nginx são o equivalente aos Virtual Hosts do Apache. Eles permitem que você execute vários sites ou aplicações em um único servidor, diferenciando-os pelo nome de domínio, endereço IP ou porta.

Estrutura Básica

A configuração típica de um server block reside dentro do bloco http no arquivo nginx.conf ou em arquivos separados dentro de /etc/nginx/sites-available/.

server {
    listen 80;
    server_name exemplo.com;

    location / {
        root /var/www/exemplo;
        index index.html;
    }
}

Perguntas Frequentes

1. Como o Nginx escolhe qual bloco usar?

O Nginx utiliza o cabeçalho Host da requisição HTTP para comparar com a diretiva server_name. Se não houver correspondência, ele utilizará o bloco definido como default_server.

2. Qual a diferença entre location / e location /api/?

As diretivas location definem como o Nginx deve processar diferentes caminhos de URL. O bloco / é o padrão (catch-all), enquanto /api/ terá prioridade para qualquer requisição que comece com esse prefixo.

3. Como servir conteúdo estático de forma eficiente?

Para arquivos estáticos (CSS, JS, imagens), utilize a diretiva expires para definir cabeçalhos de cache, reduzindo a carga no servidor:

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    expires 30d;
    add_header Cache-Control "public";
}

Conclusão

Dominar os server blocks é essencial para gerenciar múltiplos projetos em um único servidor Nginx. Lembre-se sempre de testar sua configuração com nginx -t antes de recarregar o serviço.