Cas pratiques Nginx

30 cas pratiques Nginx disponibles. Niveaux : fondamental (10), avancé (10), expert (10).

Fait partie de : Cas pratiques de Linux, Unix et serveurs web

FondamentalNginx

Activation d’un index personnalisé pour site statique

Contexte : Un site statique contient un fichier index.html dans son dossier racine. Le Problème : Nginx ne sert pas automatiquement ce fichier lors de l’accès à la racine du site. Contraintes : Configurer correctement la directive index. Livrable attendu : Proposer une configuration Nginx permettant de servir automatiquement index.html lorsqu’un utilisateur accède à la racine du site.

nginxstaticconfiguration+1
FondamentalNginx

Activation de la compression gzip

Contexte : Les pages servies par Nginx sont volumineuses et impactent les performances réseau. Le Problème : La compression gzip n’est pas activée. Contraintes : Activer gzip pour les types de contenu texte/html et application/json. Livrable attendu : Proposer une configuration Nginx permettant d’activer la compression gzip pour les contenus appropriés.

nginxgzipperformance+1
FondamentalNginx

Configuration d’un alias pour répertoire spécifique

Contexte : Une application doit exposer un dossier /uploads situé hors du root principal. Le Problème : Les fichiers ne sont pas accessibles via l’URL prévue. Contraintes : Utiliser la directive alias correctement dans un bloc location. Livrable attendu : Fournir une configuration Nginx permettant d’exposer correctement le dossier externe via une URL dédiée.

nginxaliasconfiguration+1
FondamentalNginx

Configuration d’un virtual host simple

Contexte : Une entreprise souhaite héberger un site statique via Nginx. Le Problème : Aucun virtual host n’est encore configuré pour servir le contenu du dossier /var/www/html. Contraintes : Configurer un bloc server écoutant sur le port 80 et servant des fichiers statiques. Livrable attendu : Proposer un fichier de configuration minimal permettant de servir correctement un site statique.

nginxvirtualhoststatic+1
FondamentalNginx

Correction d’un problème de cache navigateur

Contexte : Les fichiers statiques changent mais les navigateurs continuent d’utiliser une ancienne version. Le Problème : Aucun header de cache approprié n’est configuré. Contraintes : Ajouter des directives add_header ou expires pour contrôler le cache. Livrable attendu : Proposer une configuration Nginx définissant des headers de cache adaptés pour les fichiers statiques.

nginxcacheheaders+1
FondamentalNginx

Correction d’un proxy_pass mal configuré

Contexte : Une application Node.js tourne sur le port 3000 et doit être accessible via Nginx. Le Problème : Les requêtes retournent une erreur 502 Bad Gateway. Contraintes : Vérifier la directive proxy_pass et les en-têtes nécessaires. Extrait actuel : location / { proxy_pass http://localhost:30; } Livrable attendu : Adapter la configuration afin de corriger l’erreur 502 et permettre le routage correct vers l’application.

nginxproxyreverse-proxy+1
FondamentalNginx

Correction d’une erreur de syntaxe dans nginx.conf

Contexte : Une petite application web est déployée derrière Nginx sur un serveur Linux. Le Problème : Après modification du fichier nginx.conf, le service refuse de redémarrer avec une erreur de syntaxe. Contraintes : Corriger uniquement la configuration sans modifier l’application. Utiliser les bonnes directives server et location. Extrait actuel : server { listen 80 server_name example.com; location / { proxy_pass http://localhost:3000 } } Livrable attendu : Fournir une version corrigée du bloc server permettant à Nginx de redémarrer sans erreur.

nginxconfigurationdebug+1
FondamentalNginx

Limitation simple du nombre de connexions

Contexte : Un site subit de nombreuses connexions simultanées. Le Problème : Aucune limitation n’est configurée côté Nginx. Contraintes : Utiliser limit_conn pour restreindre le nombre de connexions par IP. Livrable attendu : Proposer une configuration Nginx permettant de limiter le nombre de connexions simultanées par adresse IP.

nginxsecuritylimit_conn+1
FondamentalNginx

Redirection HTTP vers HTTPS simple

Contexte : Un site est accessible en HTTP mais doit rediriger automatiquement vers HTTPS. Le Problème : Aucune redirection n’est configurée. Contraintes : Mettre en place une redirection permanente 301 sans modifier la configuration HTTPS existante. Livrable attendu : Ajouter un bloc server écoutant sur le port 80 redirigeant toutes les requêtes vers la version HTTPS du site.

nginxhttpsredirect+1
FondamentalNginx

Validation d’une configuration Nginx avant redémarrage

Contexte : Une modification vient d’être apportée à la configuration Nginx. Le Problème : L’équipe souhaite vérifier la validité avant redémarrage pour éviter toute coupure. Contraintes : Utiliser la commande native de validation Nginx. Livrable attendu : Indiquer la commande permettant de tester la configuration Nginx avant de redémarrer le service.

nginxvalidationconfiguration+1
AvancéNginx

Compression avancée et optimisation des fichiers statiques

Contexte : Le site web contient de nombreux fichiers CSS et JavaScript volumineux. Le Problème : Les performances de chargement sont sous-optimales. Contraintes : Activer gzip et configurer correctement les types MIME compressés. Livrable attendu : Proposer une configuration Nginx optimisée pour la compression et la livraison efficace des fichiers statiques.

nginxgzipperformance+2
AvancéNginx

Configuration avancée de logs personnalisés

Contexte : L’équipe souhaite inclure des informations supplémentaires dans les logs d’accès. Le Problème : Le format de log actuel ne contient pas les en-têtes importants comme X-Forwarded-For. Contraintes : Définir un log_format personnalisé et l’appliquer au serveur. Livrable attendu : Proposer une configuration Nginx incluant un format de log personnalisé intégrant des champs supplémentaires pertinents.

nginxloggingconfiguration+2
AvancéNginx

Configuration d’un rate limiting pour protection API

Contexte : Une API publique subit des abus liés à un nombre excessif de requêtes par utilisateur. Le Problème : Aucun mécanisme de limitation n’est en place. Contraintes : Utiliser limit_req_zone et limit_req pour restreindre les requêtes par IP. Livrable attendu : Proposer une configuration Nginx permettant de limiter efficacement le nombre de requêtes par seconde pour une route API spécifique.

nginxrate-limitingsecurity+2
AvancéNginx

Configuration HTTPS complète avec certificat Let's Encrypt

Contexte : Un site est actuellement accessible uniquement en HTTP et doit être sécurisé en production. Le Problème : Aucun certificat TLS n’est configuré sur le serveur Nginx. Contraintes : Configurer HTTPS avec certificat valide, redirection HTTP vers HTTPS et paramètres TLS sécurisés. Livrable attendu : Décrire une configuration Nginx sécurisée intégrant certificat, clé privée et redirection automatique vers HTTPS.

nginxhttpstls+2
AvancéNginx

Configuration multi-domaines sur une même instance

Contexte : Un serveur doit héberger deux sites distincts avec des domaines différents. Le Problème : Les configurations actuelles entrent en conflit. Contraintes : Créer deux blocs server distincts avec server_name appropriés. Livrable attendu : Proposer une configuration Nginx permettant d’héberger proprement plusieurs domaines sur la même instance.

nginxvirtualhostmulti-domain+2
AvancéNginx

Load balancing simple entre plusieurs serveurs backend

Contexte : Une application est déployée sur trois serveurs backend pour répartir la charge. Le Problème : Nginx pointe actuellement vers un seul serveur. Contraintes : Configurer un bloc upstream avec méthode de répartition round-robin. Livrable attendu : Proposer une configuration Nginx intégrant un upstream group permettant la distribution des requêtes entre plusieurs serveurs backend.

nginxload-balancingupstream+2
AvancéNginx

Mise en place d’un cache proxy pour optimisation des performances

Contexte : Une API reçoit de nombreuses requêtes répétitives. Le Problème : Chaque requête est transmise au backend, augmentant la charge serveur. Contraintes : Configurer proxy_cache avec durée de validité adaptée sans impacter les requêtes dynamiques critiques. Livrable attendu : Proposer une configuration Nginx activant un cache proxy pour certaines routes spécifiques.

nginxcacheproxy+2
AvancéNginx

Mise en place d’un reverse proxy avec gestion des en-têtes sécurisés

Contexte : Une application backend tourne sur plusieurs instances internes et doit être exposée via Nginx en frontal. Le Problème : Les en-têtes d’origine (Host, X-Forwarded-For) ne sont pas correctement transmis, ce qui perturbe la journalisation et l’authentification. Contraintes : Configurer un reverse proxy propre avec transmission correcte des en-têtes et sans modifier l’application backend. Livrable attendu : Proposer une configuration Nginx complète incluant proxy_set_header nécessaires pour assurer une communication correcte et sécurisée.

nginxreverse-proxyheaders+2
AvancéNginx

Optimisation des performances via keepalive et worker tuning

Contexte : Un site reçoit un trafic important et subit des ralentissements en période de pic. Le Problème : Les paramètres par défaut Nginx ne sont pas optimisés. Contraintes : Ajuster worker_processes, worker_connections et keepalive_timeout. Livrable attendu : Proposer une configuration Nginx optimisée pour améliorer la gestion des connexions sous forte charge.

nginxperformancetuning+2
AvancéNginx

Restriction d’accès à une route spécifique par adresse IP

Contexte : Une interface d’administration doit être accessible uniquement depuis le réseau interne. Le Problème : Elle est actuellement accessible publiquement. Contraintes : Utiliser les directives allow et deny dans un bloc location. Livrable attendu : Fournir une configuration Nginx restreignant l’accès à une route spécifique selon l’adresse IP.

nginxsecurityaccess-control+2
ExpertNginx

Architecture multi-domaines avec isolation SSL et SNI

Contexte : Une entreprise héberge plusieurs domaines sécurisés sur la même infrastructure Nginx. Le Problème : Les certificats et configurations TLS entrent en conflit. Contraintes : Utiliser SNI pour servir plusieurs certificats distincts sur le port 443. Livrable attendu : Proposer une configuration Nginx gérant correctement plusieurs domaines HTTPS avec certificats distincts et isolation complète.

nginxtlssni+2
ExpertNginx

Architecture Nginx hautement disponible avec load balancer externe

Contexte : Une application critique est exposée via une seule instance Nginx en frontal. Le Problème : Cette instance constitue un point unique de défaillance, et toute panne rend le service inaccessible. Contraintes : Concevoir une architecture Nginx hautement disponible avec au minimum deux instances derrière un load balancer ou mécanisme de failover. Aucune modification du backend applicatif. Livrable attendu : Proposer une architecture complète incluant répartition de charge, synchronisation de configuration et gestion des certificats TLS dans un environnement redondé.

nginxhigh-availabilityload-balancing+2
ExpertNginx

Déploiement Nginx en tant que Ingress Controller Kubernetes

Contexte : Une application est déployée sur Kubernetes et doit être exposée via un Ingress Controller Nginx. Le Problème : L’accès externe n’est pas correctement configuré et certaines routes ne fonctionnent pas. Contraintes : Configurer des règles Ingress adaptées sans modifier les services backend. Livrable attendu : Décrire une configuration Ingress Nginx permettant un routage correct vers plusieurs services Kubernetes.

nginxkubernetesingress+2
ExpertNginx

Implémentation d’un cache avancé avec invalidation conditionnelle

Contexte : Une API retourne des données partiellement dynamiques qui peuvent être mises en cache temporairement. Le Problème : Le cache actuel est trop basique et ne permet pas d’invalidation fine selon certains paramètres. Contraintes : Mettre en place proxy_cache avec clés personnalisées et mécanisme d’invalidation contrôlée. Livrable attendu : Décrire une configuration Nginx permettant un cache avancé avec contrôle précis des clés et des règles d’expiration.

nginxcacheproxy+2
ExpertNginx

Migration vers architecture microservices avec routing avancé

Contexte : Une application monolithique est migrée vers plusieurs microservices distincts. Le Problème : Le routage actuel ne permet pas de rediriger correctement vers les différents services. Contraintes : Configurer un routing basé sur URI ou host pour distribuer les requêtes vers plusieurs backends. Livrable attendu : Proposer une configuration Nginx adaptée à une architecture microservices avec upstream multiples et routage conditionnel.

nginxmicroservicesrouting+2
ExpertNginx

Mise en place d’un reverse proxy sécurisé avec authentification JWT

Contexte : Une API interne doit être protégée via un mécanisme d’authentification centralisé. Le Problème : L’application backend ne gère pas nativement les tokens JWT. Contraintes : Mettre en place une validation JWT au niveau Nginx sans modifier l’application backend. Livrable attendu : Décrire une configuration Nginx intégrant validation JWT ou délégation vers un service d’authentification externe afin de sécuriser l’accès aux routes sensibles.

nginxjwtsecurity+2
ExpertNginx

Mise en place d’un WAF simple avec règles personnalisées

Contexte : Une application publique subit des tentatives fréquentes d’attaques automatisées. Le Problème : Aucune protection avancée n’est configurée côté Nginx. Contraintes : Implémenter des règles de filtrage basiques (limitation requêtes suspectes, blocage user-agents malveillants). Livrable attendu : Proposer une configuration Nginx intégrant des règles simples de type WAF pour renforcer la sécurité en frontal.

nginxsecuritywaf+2
ExpertNginx

Optimisation avancée pour trafic massif avec tuning système

Contexte : Un site à fort trafic subit des pics dépassant plusieurs milliers de requêtes par seconde. Le Problème : Des erreurs 502 et timeouts apparaissent lors des périodes de forte charge. Contraintes : Optimiser la configuration Nginx (worker_processes, buffers, keepalive, gzip) ainsi que les paramètres système associés. Livrable attendu : Proposer une stratégie complète de tuning permettant d’absorber une forte charge tout en maintenant stabilité et performance.

nginxperformancetuning+2
ExpertNginx

Refonte complète d’une configuration legacy vers architecture moderne modulaire

Contexte : Une configuration Nginx historique regroupe tous les paramètres dans un seul fichier volumineux. Le Problème : La maintenance est difficile et les modifications introduisent des erreurs fréquentes. Contraintes : Refactoriser vers une structure modulaire avec fichiers séparés pour sites-available, sites-enabled et includes. Livrable attendu : Décrire une stratégie de refonte vers une configuration Nginx modulaire, maintenable et adaptée aux bonnes pratiques modernes.

nginxrefactorconfiguration+2
ExpertNginx

Sécurisation avancée avec mutual TLS (mTLS)

Contexte : Une API interne critique nécessite une authentification forte entre client et serveur. Le Problème : Le HTTPS actuel ne valide que le certificat serveur. Contraintes : Mettre en place une authentification mutuelle TLS (mTLS) avec validation des certificats clients. Livrable attendu : Proposer une configuration Nginx permettant l’activation du mTLS avec gestion des certificats clients et politique d’accès appropriée.

nginxmtlssecurity+2

Questions originales conçues par CodeDuel. CodeDuel n'est affilié à aucun éditeur ni organisme de certification cité ; les noms de certifications et les marques appartiennent à leurs titulaires et servent uniquement à indiquer le domaine couvert. Signaler un contenu

    Cas pratiques Nginx : 30 mises en situation | CodeDuel