17 mars 2025

Nginx refuse la prise en charge du mode sombre pour les pages d'erreur

Nginx a rejeté la prise en charge du mode sombre dans les pages d'erreur, préférant conserver une approche minimaliste et laisser la personnalisation aux administrateurs système.

Erreur NGINX en mode sombre

Introduction

Ces dernières années, le mode sombre est devenu une fonctionnalité essentielle pour de nombreux internautes. Les navigateurs, les systèmes d’exploitation et de nombreuses applications ont implémenté cette fonctionnalité pour améliorer l’expérience de visionnage et réduire la fatigue oculaire. Cependant, le serveur Web Nginx a récemment décidé de refuser une proposition visant à ajouter la prise en charge du mode sombre à ses pages d'erreur par défaut.

Le contexte : la demande d'extraction et la fonctionnalité proposée

La semaine dernière, un nouveau a été ouvert demande de tirage (PR) dans le référentiel officiel Nginx sur GitHub pour ajouter la prise en charge native du mode sombre dans les pages d'erreur. La méthode proposée était extrêmement simple : ajouter le balise meta color-scheme avec la valeur light dark dans les pages d'erreur standard de Nginx. Cela aurait permis aux navigateurs modernes d’adapter automatiquement le rendu graphique de la page en fonction des préférences de l’utilisateur.

Le changement était minime mais efficace, car les navigateurs qui prenaient en charge cette fonctionnalité pouvaient afficher des pages d’erreur avec un arrière-plan sombre lorsque l’utilisateur activait le mode sombre dans son système d’exploitation ou son navigateur.

Rejet et motivation de Nginx

Malgré la simplicité et l’efficacité de la proposition, l’équipe de développement de Nginx a décidé de refuser le PR, arguant que :

  1. Les pages d'erreur par défaut de Nginx doivent rester simples – L’objectif des pages d’erreur standard est de fournir uniquement les informations essentielles, sans aucun élément inutile.
  2. La balise méta supplémentaire est considérée comme superflue – Bien qu’il s’agisse d’un petit ajout en termes de code, l’équipe de développement de Nginx estime que ce n’est pas un changement nécessaire.
  3. Les administrateurs système peuvent personnaliser les pages d'erreur – Si un administrateur de serveur souhaite une page d’erreur avec prise en charge du mode sombre, il peut simplement utiliser la directive error_page de Nginx pour servir une page HTML personnalisée avec le support souhaité.

En conséquence, la proposition a été clôturée sans être acceptée dans la base de code officielle NGINX.

Le rôle du mode sombre dans le Web moderne

La mise en œuvre du mode sombre est devenue l’une des meilleures pratiques en matière de développement Web. Il ne s’agit pas seulement d’une amélioration esthétique, mais présente également plusieurs avantages pratiques :

  • Réduction de la fatigue oculaire – Surtout dans les environnements à faible luminosité, l’utilisation d’un arrière-plan sombre réduit la luminosité globale de l’écran et aide à prévenir la fatigue oculaire.
  • Plus grande efficacité énergétique – Sur les appareils dotés d’écrans OLED, le mode sombre consomme moins d’énergie qu’un fond blanc, augmentant ainsi la durée de vie de la batterie.
  • Préférences de l'utilisateur – De nombreux utilisateurs définissent le mode sombre comme mode par défaut dans leur système d’exploitation ou leur navigateur, s’attendant à une cohérence visuelle sur tous les sites Web et applications.

Compte tenu de ces avantages, de nombreux services et logiciels en ligne ont adopté cette fonctionnalité pour améliorer l’expérience utilisateur. Le rejet de Nginx pourrait sembler être un pas en arrière dans cette direction.

Pourquoi Nginx a-t-il rejeté le changement ?

En analysant la décision de Nginx, nous pouvons identifier certaines raisons derrière le refus :

1. Philosophie minimaliste

Nginx est connu pour son efficacité et sa simplicité. Ses pages d'erreur standard sont volontairement basiques, sans style avancé ni dépendances externes. L'ajout d'un balise meta Cela peut sembler un détail insignifiant, mais cela fait partie d’une logique plus large visant à garder le code minimal.

2. Approche « Personnalisable par les administrateurs »

Nginx fournit déjà un moyen de personnaliser les pages d'erreur via la directive error_page. Un administrateur peut proposer une page HTML entièrement personnalisée, incluant non seulement la prise en charge du mode sombre, mais également toute autre amélioration graphique et fonctionnelle.

3. Maintenir la compatibilité descendante

Même si l'ajout de la balise color-scheme Cela ne rompt pas la compatibilité avec aucun navigateur ou système, l'équipe Nginx semble être très prudente pour éviter toute modification inutile.

Comment implémenter le mode sombre dans les pages d'erreur personnalisées

Si un administrateur système souhaite prendre en charge le mode sombre dans les pages d’erreur, il peut le faire en personnalisant les pages d’erreur Nginx.

Voici un exemple de page d’erreur personnalisée avec prise en charge du mode sombre :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="color-scheme" content="light dark">
    <title>404 Not Found</title>
    <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cstyle%3E%0A%20%20%20%20%20%20%20%20body%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20font-family%3A%20Arial%2C%20sans-serif%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20text-align%3A%20center%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20padding%3A%2050px%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%3C%2Fstyle%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;style&gt;" title="&lt;style&gt;" />
</head>
<body>
    <h1>404 Not Found</h1>
    <p>The requested resource could not be found on this server.</p>
</body>
</html>

 

Cette configuration remplace la page d’erreur standard par une version personnalisée qui prend en charge le mode sombre.

Conclusions

La décision de Nginx de rejeter le mode sombre dans les pages d’erreur par défaut a généré des discussions au sein de la communauté. D’une part, le changement aurait été simple et aurait amélioré l’expérience utilisateur pour ceux qui utilisent le mode sombre. D'autre part, Nginx s'en tient à sa philosophie minimaliste et laisse la personnalisation aux administrateurs système.

Ceux qui souhaitent avoir des pages d'erreur qui respectent le mode sombre peuvent facilement les implémenter en utilisant la méthode décrite ci-dessus. Pour l'instant, les utilisateurs rencontrant une page 404 servie par NGINX devront se résigner au fond blanc classique, du moins jusqu'à ce qu'il soit personnalisé par l'opérateur du serveur.

Lien vers la demande d'extraction originale : GitHub – Nginx PR 567

Vous avez des doutes ? Vous ne savez pas par où commencer ? Contactez-nous !

Nous avons toutes les réponses à vos questions pour vous aider à faire le bon choix.

Discute avec nous

Discutez directement avec notre support avant-vente.

0256569681

Contactez-nous par téléphone pendant les heures de bureau 9h30 - 19h30

Contactez-nous en ligne

Ouvrez une demande directement dans l'espace contact.

AVIS DE NON-RESPONSABILITÉ, Mentions légales et droits d'auteur. Red Hat, Inc. détient les droits sur Red Hat®, RHEL®, RedHat Linux® et CentOS® ; AlmaLinux™ est une marque commerciale de la AlmaLinux OS Foundation ; Rocky Linux® est une marque déposée de la Rocky Linux Foundation ; SUSE® est une marque déposée de SUSE LLC ; Canonical Ltd. détient les droits sur Ubuntu® ; Software in the Public Interest, Inc. détient les droits sur Debian® ; Linus Torvalds détient les droits sur Linux® ; FreeBSD® est une marque déposée de la Fondation FreeBSD ; NetBSD® est une marque déposée de la Fondation NetBSD ; OpenBSD® est une marque déposée de Theo de Raadt ; Oracle Corporation détient les droits sur Oracle®, MySQL®, MyRocks®, VirtualBox® et ZFS® ; Percona® est une marque déposée de Percona LLC ; MariaDB® est une marque déposée de MariaDB Corporation Ab ; PostgreSQL® est une marque déposée de PostgreSQL Global Development Group ; SQLite® est une marque déposée de Hipp, Wyrick & Company, Inc. ; KeyDB® est une marque déposée d'EQ Alpha Technology Ltd. ; Typesense® est une marque déposée de Typesense Inc. ; REDIS® est une marque déposée de Redis Labs Ltd ; F5 Networks, Inc. détient les droits sur NGINX® et NGINX Plus® ; Varnish® est une marque déposée de Varnish Software AB ; HAProxy® est une marque déposée de HAProxy Technologies LLC ; Traefik® est une marque déposée de Traefik Labs ; Envoy® est une marque déposée de CNCF ; Adobe Inc. détient les droits sur Magento® ; PrestaShop® est une marque déposée de PrestaShop SA ; OpenCart® est une marque déposée d'OpenCart Limited ; Automattic Inc. détient les droits sur WordPress®, WooCommerce® et JetPack® ; Open Source Matters, Inc. détient les droits sur Joomla® ; Dries Buytaert détient les droits sur Drupal® ; Shopify® est une marque déposée de Shopify Inc. ; BigCommerce® est une marque déposée de BigCommerce Pty. Ltd.; TYPO3® est une marque déposée de la TYPO3 Association; Ghost® est une marque déposée de la Ghost Foundation; Amazon Web Services, Inc. détient les droits sur AWS® et Amazon SES® ; Google LLC détient les droits sur Google Cloud™, Chrome™ et Google Kubernetes Engine™ ; Alibaba Cloud® est une marque déposée d'Alibaba Group Holding Limited ; DigitalOcean® est une marque déposée de DigitalOcean, LLC ; Linode® est une marque déposée de Linode, LLC ; Vultr® est une marque déposée de The Constant Company, LLC ; Akamai® est une marque déposée d'Akamai Technologies, Inc. ; Fastly® est une marque déposée de Fastly, Inc. ; Let's Encrypt® est une marque déposée d'Internet Security Research Group ; Microsoft Corporation détient les droits sur Microsoft®, Azure®, Windows®, Office® et Internet Explorer® ; Mozilla Foundation détient les droits sur Firefox® ; Apache® est une marque déposée de The Apache Software Foundation ; Apache Tomcat® est une marque déposée de The Apache Software Foundation ; PHP® est une marque déposée de PHP Group ; Docker® est une marque déposée de Docker, Inc. Kubernetes® est une marque déposée de The Linux Foundation ; OpenShift® est une marque déposée de Red Hat, Inc. ; Podman® est une marque déposée de Red Hat, Inc. ; Proxmox® est une marque déposée de Proxmox Server Solutions GmbH ; VMware® est une marque déposée de Broadcom Inc. ; CloudFlare® est une marque déposée de Cloudflare, Inc. ; NETSCOUT® est une marque déposée de NETSCOUT Systems Inc. ; ElasticSearch®, LogStash® et Kibana® sont des marques déposées d'Elastic NV ; Grafana® est une marque déposée de Grafana Labs ; Prometheus® est une marque déposée de The Linux Foundation ; Zabbix® est une marque déposée de Zabbix LLC ; Datadog® est une marque déposée de Datadog, Inc. ; Ceph® est une marque déposée de Red Hat, Inc. ; MinIO® est une marque déposée de MinIO, Inc. ; Mailgun® est une marque déposée de Mailgun Technologies, Inc. ; SendGrid® est une marque déposée de Twilio Inc. Postmark® est une marque déposée d'ActiveCampaign, LLC ; cPanel®, LLC détient les droits sur cPanel® ; Plesk® est une marque déposée de Plesk International GmbH ; Hetzner® est une marque déposée de Hetzner Online GmbH ; OVHcloud® est une marque déposée d'OVH Groupe SAS ; Terraform® est une marque déposée de HashiCorp, Inc. ; Ansible® est une marque déposée de Red Hat, Inc. ; cURL® est une marque déposée de Daniel Stenberg ; Facebook®, Inc. détient les droits sur Facebook®, Messenger® et Instagram®. Ce site n'est pas affilié, sponsorisé ou autrement associé à l'une des entités mentionnées ci-dessus et ne représente aucune de ces entités de quelque manière que ce soit. Tous les droits sur les marques et noms de produits mentionnés sont la propriété de leurs titulaires respectifs des droits d'auteur. Toutes les autres marques mentionnées sont la propriété de leurs titulaires respectifs. MANAGED SERVER® est une marque déposée européenne de MANAGED SERVER SRL, dont le siège social est situé Via Flavio Gioia, 6, 62012 Civitanova Marche (MC), Italie et le siège opérationnel Via Enzo Ferrari, 9, 62012 Civitanova Marche (MC), Italie.

JUSTE UN MOMENT !

Vous êtes-vous déjà demandé si votre hébergement était nul ?

Découvrez dès maintenant si votre hébergeur vous pénalise avec un site web lent digne des années 1990 ! Résultats immédiats.

Fermer le CTA
Retour en haut de page