Servindo arquivos estáticos com Nginx: Dicas de otimização

Descubra as melhores práticas para configurar o Nginx para servir ativos estáticos como imagens, CSS e JavaScript de forma eficiente, resultando em carregamentos de página mais rápidos.

O Nginx é amplamente reconhecido por sua alta performance ao servir conteúdo estático. No entanto, configurações padrão nem sempre extraem o máximo potencial do servidor. Abaixo, apresentamos as melhores práticas para otimizar a entrega de seus ativos.

1. Habilitar o Sendfile

A diretiva sendfile permite que o Nginx utilize chamadas de sistema eficientes para copiar dados diretamente entre descritores de arquivo, ignorando o buffer da aplicação.

http {
    sendfile on;
}

2. Otimizar o TCP Cork

Ao usar sendfile, a diretiva tcp_nopush (ou "cork") permite que o Nginx envie o cabeçalho da resposta HTTP em um único pacote, melhorando a eficiência da rede.

http {
    tcp_nopush on;
}

3. Configurar Cache de Arquivos (Open File Cache)

O Nginx pode armazenar metadados de arquivos abertos, como descritores de arquivo e tamanhos, reduzindo chamadas de sistema repetitivas.

http {
    open_file_cache max=1000 inactive=20s;
    open_file_cache_valid 30s;
    open_file_cache_min_uses 2;
    open_file_cache_errors on;
}

4. Compressão Gzip

Comprimir arquivos de texto (CSS, JS, HTML) reduz drasticamente o tamanho da transferência.

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml;

5. Definir Cabeçalhos de Cache (Expires)

Instruir o navegador a armazenar arquivos estáticos em cache local evita requisições desnecessárias ao servidor.

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