31 lines
1.4 KiB
Plaintext
31 lines
1.4 KiB
Plaintext
# /etc/nginx/snippets/cache_aggressive_static.conf
|
|
#
|
|
# Snippet de cache agressivo para ficheiros estáticos que raramente mudam.
|
|
# AVISO: Só use isto se os seus ficheiros tiverem nomes únicos a cada deploy (técnica de "cache busting").
|
|
|
|
# --- Configuração do Cache do Nginx ---
|
|
|
|
# Ativa o cache para esta localização, usando a zona de cache 'static_cache'.
|
|
# Garanta que esta zona está definida no seu /etc/nginx/nginx.conf.
|
|
proxy_cache static_cache;
|
|
# Define que as respostas válidas ficam no cache do Nginx por 30 dias.
|
|
proxy_cache_valid 200 301 302 30d;
|
|
# Cacheia erros de "Não Encontrado" por um período curto.
|
|
proxy_cache_valid 404 1m;
|
|
# Em caso de erro no backend, serve uma versão antiga do cache em vez de mostrar um erro.
|
|
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
|
|
# Ativa explicitamente o cache para esta localização.
|
|
proxy_no_cache 0;
|
|
proxy_cache_bypass 0;
|
|
# Otimização que impede que múltiplas requisições para o mesmo recurso em falta atinjam o backend.
|
|
proxy_cache_lock on;
|
|
|
|
# --- Configuração do Cache do Cliente (Navegador) ---
|
|
|
|
# Instrui o NAVEGADOR do cliente a guardar uma cópia por 30 dias e a nunca a revalidar.
|
|
# 'immutable' é uma otimização de performance poderosa.
|
|
add_header Cache-Control "public, immutable, max-age=2592000";
|
|
|
|
# Adiciona um cabeçalho de depuração para vermos o status do cache (HIT/MISS/BYPASS).
|
|
add_header X-Cache-Status $upstream_cache_status;
|