Paginile standard de eroare Nginx (fond alb, text negru „502 Bad Gateway” și versiunea serverului expusă în subsol) oferă o experiență neplăcută utilizatorilor și dezvăluie detalii tehnice atacatorilor. Directiva error_page permite maparea codurilor de stare HTTP către pagini de design personalizate, iar proxy_intercept_errors garantează că Nginx interceptează și maschează erorile interne aruncate de aplicațiile backend (Node.js, Python, PHP-FPM).
Configurația completă pentru pagini elegante de eroare
server {
listen 80;
server_name www.dexblog.ro;
root /var/www/html;
# Ascundem numărul versiunii Nginx din toate erorile și antetele:
server_tokens off;
# Maparea erorilor 4xx și 5xx:
error_page 404 /custom_404.html;
error_page 500 502 503 504 /custom_50x.html;
# Interceptează erorile returnate de serverul proxy backend:
proxy_intercept_errors on;
# Interceptează erorile returnate de PHP-FPM:
fastcgi_intercept_errors on;
# Locația fișierelor statice de eroare (marcate 'internal' pentru a nu fi accesate direct):
location = /custom_404.html {
root /var/www/error_pages;
internal;
}
location = /custom_50x.html {
root /var/www/error_pages;
internal;
}
}
Directiva internal: Adăugarea directivei
internal; în blocul de locație garantează că vizitatorii nu pot accesa direct URL-ul https://dexblog.ro/custom_50x.html din browser. Pagina va fi afișată strict atunci când Nginx declanșează intern codul de eroare respectiv.