Featured image of post Réponse personnalisée avec Nginx

Réponse personnalisée avec Nginx

Page d'erreur et headers personnalisées avec Nginx

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 :

include /etc/nginx/modules-enabled/50-mod-http-headers-more-filter.conf;

Pour Swag :

include /etc/nginx/modules/10_http_headers_more.conf;

Puis, nous rajouterons dans la section ‘http’ la ligne suivante en adaptant ‘votre message’ par ce que vous souhaitez que le proxy retourne :

more_set_headers 'Server: votre message';

Nous allons profiter pour désactiver certains headers :

server_tokens off;
etag off;

Vérification de vos modifications

Tapez la commande suivante pour vérifier la reponse de votre proxy :

curl -I https://cequevousvoulez.subdomain.domain.tld;

en remplacant ‘cequevousvoulez’ par n’importe quoi. Vous devriez obtenir une réponse avec le tag ‘server’ modifié:

Réponse du serveur en mode console

Faites le même test mais avec votre navigateur pour vérifier que c’est bien la page ‘customisée’ qui apparait :

Réponse du serveur avec un navifateur

Généré avec Hugo
Thème Stack conçu par Jimmy