Introduction
Je vais vous présenter comment personnalisé la page d’erreur par défaut retourné aux navigateurs Web par Nginx (ou Swag).
Nous verrons aussi qu’il est possible de modifier les ‘Headers’ de réponse de Nginx pour cacher par exemple la technologie utilisée.
Pré-requis
Nous aurons besoin d’installer pour Nginx le paquet ‘nginx-extras’ qui contient le module permettant de modifier les ‘Headers’.
Pour l’installer sur Nginx : sudo apt install nginx-extras.
Page d’erreur personnalisée
Le virtual Host
Nous allons créer un ‘Virtual Host’ par défaut qui sera utilisé par le proxy pour retourner une page personnalisée pour toute erreur d’URL.
Voici la version pour Nginx/Swag :
server {
listen 80 default_server;
server_name everythingelse;
include /etc/nginx/snippets/404.conf;
}
server {
listen 443 ssl http2 default_server;
server_name everythingelse;
include /etc/nginx/snippets/404.conf;
include /etc/nginx/ssl/ciphers-subdomain.domain.tld; # Pour Nginx
include /config/nginx/ssl.conf; # Pour Swag
}
Redirection des erreurs vers une page 404
Nous avons utilisez le fichier de configuration /etc/nginx/snippets/404.conf qui lui permet de rediriger toutes les réponses 4xx vers une page html 404.
Voici sa syntaxe :
error_page 400 403 404 =404 /404.html;
location / {
return 404;
}
location = /404.html {
root /etc/nginx/conf.d/;
}
La page html contenant votre retour customisé devra être situé ici : /etc/nginx/conf.d/404.html
Modification des headers
Nous allons modifier le fichier de configuration globale de Nginx pour lui indiquer d’utiliser la librairie ‘Headers’ installée au préalable via le paquet ‘nginx-extras’. Pour cela, nous rajoutons en début de notre fichier /etc/nginx/nginx.conf la ligne suivante :
Pour Nginx :
Pour Swag :
Puis, nous rajouterons dans la section ‘http’ la ligne suivante en adaptant ‘votre message’ par ce que vous souhaitez que le proxy retourne :
Nous allons profiter pour désactiver certains headers :
etag off;
Vérification de vos modifications
Tapez la commande suivante pour vérifier la reponse de votre proxy :
en remplacant ‘cequevousvoulez’ par n’importe quoi. Vous devriez obtenir une réponse avec le tag ‘server’ modifié:
Faites le même test mais avec votre navigateur pour vérifier que c’est bien la page ‘customisée’ qui apparait :