NgixProxy_Pathfinder/nginx/snippets/custom_errors.conf

29 lines
3.3 KiB
Plaintext

# /etc/nginx/snippets/custom_errors.conf
#
# Define as páginas de erro personalizadas para todo o servidor.
# Esta versão usa 'return' dentro de localizações nomeadas para gerar
# o conteúdo HTML dinamicamente, incluindo a URL que causou o erro.
# --- Mapeamento de Erros ---
# Aponta cada erro para a sua respectiva localização nomeada.
error_page 403 @error403;
error_page 404 @error404;
error_page 500 502 503 504 @error5xx;
# --- Localização Nomeada para o Erro 403 (Acesso Negado) ---
location @error403 {
return 403 '<!DOCTYPE html><html lang="pt-br"><head><meta charset="UTF-8"><title>403 - Acesso Negado</title><style>body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;margin:0;background-color:#121212;color:#e9ecef;text-align:center;padding:20px;box-sizing:border-box}h1{font-size:clamp(3rem,10vw,6rem);color:#dc3545;margin:0}h2{font-size:clamp(1.5rem,5vw,2.5rem);margin:10px 0 20px 0;font-weight:300}p{font-size:clamp(1rem,2.5vw,1.2rem);max-width:600px;line-height:1.6}code{background-color:#343a40;padding:3px 6px;border-radius:4px;color:#ffc107;}</style></head><body><h1>403</h1><h2>Acesso Negado</h2><p>Você não tem permissão para aceder ao recurso <code>$request_uri</code>.</p><p>Se acredita que isto é um erro, por favor, contacte o administrador do sistema.</p></body></html>';
}
# --- Localização Nomeada para o Erro 404 (Não Encontrado) ---
location @error404 {
return 404 '<!DOCTYPE html><html lang="pt-br"><head><meta charset="UTF-8"><title>404 - Não Encontrado</title><style>body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;margin:0;background-color:#121212;color:#e9ecef;text-align:center;padding:20px;box-sizing:border-box}h1{font-size:clamp(3rem,10vw,6rem);color:#ffc107;margin:0}h2{font-size:clamp(1.5rem,5vw,2.5rem);margin:10px 0 20px 0;font-weight:300}p{font-size:clamp(1rem,2.5vw,1.2rem);max-width:600px;line-height:1.6}code{background-color:#343a40;padding:3px 6px;border-radius:4px;color:#ffc107;}</style></head><body><h1>404</h1><h2>Página Não Encontrada</h2><p>O recurso <code>$request_uri</code> que você procurava não foi encontrado neste servidor.</p><p>Por favor, verifique o URL e tente novamente.</p></body></html>';
}
# --- Localização Nomeada para Erros de Servidor (5xx) ---
location @error5xx {
return 500 '<!DOCTYPE html><html lang="pt-br"><head><meta charset="UTF-8"><title>500 - Erro Interno do Servidor</title><style>body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;margin:0;background-color:#121212;color:#e9ecef;text-align:center;padding:20px;box-sizing:border-box}h1{font-size:clamp(3rem,10vw,6rem);color:#6f42c1;margin:0}h2{font-size:clamp(1.5rem,5vw,2.5rem);margin:10px 0 20px 0;font-weight:300}p{font-size:clamp(1rem,2.5vw,1.2rem);max-width:600px;line-height:1.6}</style></head><body><h1>Erro no Servidor</h1><h2>Ocorreu uma Falha Inesperada</h2><p>A nossa equipa técnica já foi notificada sobre este problema. Por favor, tente novamente mais tarde.</p></body></html>';
}