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.