Ce guide pratique explique comment monter un serveur web Nginx sur un Raspberry Pi et décrit les étapes concrètes d’installation.
Il met l’accent sur la configuration, la liaison avec PHP-FPM et les vérifications utiles pour la mise en service rapide.
A retenir :
- Réactivité accrue pour serveurs peu puissants et charges modérées
- Consommation mémoire réduite adaptée aux Raspberry Pi 512 Mo
- Gestion fine des hôtes virtuels et reverse proxy intégré
- Configuration centralisée sans .htaccess, administration serveur plus sûre
Installation Nginx sur Raspberry Pi : commandes et vérifications
Après avoir identifié les avantages cités plus haut, la première étape consiste à installer Nginx sur Raspbian pour libérer des ressources système.
Cette section détaille les commandes apt, l’ajout de php-fpm et les vérifications initiales à exécuter pour valider l’installation.
Préparation du système et désactivation d’Apache
Pour commencer, désactivez Apache s’il est présent pour éviter les conflits de ports et services concurrents sur la machine.
Exécutez sudo /etc/init.d/apache2 stop puis sudo systemctl disable apache2 pour empêcher un démarrage automatique au boot.
Si besoin, la commande sudo systemctl enable apache2 permet de réactiver Apache ultérieurement sans réinstaller les paquets système.
Commandes service Apache :
- sudo /etc/init.d/apache2 stop
- sudo systemctl disable apache2
- sudo systemctl enable apache2
Serveur
Type
Part de marché (2016)
Remarques
Apache
Processuel/modulaire
60.6%
Historique et riche en modules
Nginx
Événementiel asynchrone
20.4%
Performances sur charges simultanées
Microsoft IIS
Serveur propriétaire
14.1%
Intégration Windows
Autres
Variés
Reste
Alternatives légères ou spécialisées
Selon W3Techs, ces parts historiques aident à comprendre pourquoi Nginx s’est imposé comme alternative performante aux systèmes traditionnels.
Installation de Nginx et liaison avec PHP-FPM
La seconde opération essentielle consiste à installer Nginx et php-fpm depuis les dépôts officiels de Raspbian pour une compatibilité maximale.
Exécutez sudo apt install nginx php-fpm puis vérifiez la page d’accueil sur le port 80 affichant Welcome to nginx! pour confirmer l’installation.
Pour vérifier PHP, créez un index.php contenant dans /var/www/html et testez l’exécution via le navigateur local.
Permissions répertoire :
- sudo chown -R www-data:pi /var/www/html
- sudo chmod -R 770 /var/www/html
- chown www-data:www-data /var/www
- chmod 744 /var/www
Une fois les fichiers en place, redémarrez Nginx avec sudo /etc/init.d/nginx restart pour appliquer les modifications et valider la liaison avec PHP-FPM.
« J’ai migré mon blog vers Nginx sur un Raspberry Pi et la réactivité a été immédiatement visible. »
Paul D.
Configuration avancée et gestion des erreurs Nginx
Avec Nginx et PHP fonctionnels, la configuration avancée évite les erreurs fréquentes comme le 403 et optimise l’accès aux contenus.
Cette partie décrit la gestion des index, des permissions et des snippets fastcgi nécessaires au bon fonctionnement des pages dynamiques.
Résolution de l’erreur 403 Forbidden
L’erreur 403 provient souvent de l’absence d’un index ou de permissions incorrectes sur /var/www, empêchant Nginx d’afficher un fichier.
Testez la présence d’un index.html puis ajustez les propriétaires et les permissions pour rendre le répertoire accessible à www-data sans risque excessif.
Selon la configuration, attribuez www-data et utilisez 744 ou 770 selon l’usage pour autoriser la lecture tout en limitant les écritures non nécessaires.
Vérifications préliminaires système :
- Présence d’un index.html ou index.php
- Propriétaire du répertoire défini sur www-data
- Permissions 744 ou 770 selon besoin
- Configuration fastcgi-php.conf activée
Cause
Symptôme
Correctif
Absence d’index
403, page vide
Ajouter index.html ou index.php
Permissions incorrectes
403 à l’accès
chown www-data ; chmod 744/770
Propriétaire erroné
403 ou écriture refusée
chown -R www-data:pi sur le dossier
Configuration site
Erreur de routing
Ajuster root et index dans sites-available
Selon NGINX, une configuration claire des directives index et root évite de nombreux refus d’accès liés aux habitudes d’Apache et aux .htaccess absents.
La surveillance des logs offre une lecture rapide des causes d’erreurs et permet d’orienter les correctifs vers fichiers ou permissions concernés.
« Le reverse proxy a réduit les interruptions lors des mises à jour de mes services back-end. »
Camille L.
Reverse proxy, sécurité web et optimisation de performance
Après la correction des erreurs, l’étape suivante consiste à mettre en place un reverse proxy et à optimiser la performance serveur pour les charges réelles.
Cette section couvre TLS, en-têtes de sécurité, cache et tests de charge simples adaptés aux limites d’un Raspberry Pi domestique.
Configurer Nginx comme reverse proxy
La configuration de Nginx en reverse proxy permet de répartir les services et d’augmenter la sécurité en cachant les backends réels derrière un frontal unique.
Déclarez des blocs server avec proxy_pass vers les backends et ajustez timeouts et buffers selon la charge observée pour limiter les erreurs 504 et timeouts.
Selon NGINX, un proxy bien configuré réduit l’exposition directe des services internes et facilite l’ajout de cache ou d’ACL de filtrage.
Bonnes pratiques proxy :
- Utiliser proxy_set_header Host et X-Forwarded-For
- Limiter taille corps et définir timeouts appropriés
- Configurer health checks pour backends critiques
- Séparer frontaux et backends pour sécurité
« J’ai migré mon site professionnel vers Nginx et le reverse proxy a apporté stabilité sous charge. »
Sophie M.
Sécurité web et tests de performance
La sécurité web inclut TLS, en-têtes HTTP, permissions et surveillance de logs pour détecter des anomalies sur les serveurs exposés.
Activez TLS avec certbot pour obtenir des certificats gratuits et forcez HSTS pour les hôtes publics afin de durcir les connexions.
Effectuez des tests de charge légers pour évaluer la consommation mémoire et la latence, et adaptez la configuration aux limites matérielles.
Vérifications sécurité essentielles :
- TLS avec certificats valides et renouvellement automatisé
- Headers CSP et X-Frame-Options correctement définis
- Mises à jour régulières du système et des paquets
- Surveillance des logs et alertes pour tentatives suspectes
Ces réglages ouvrent sur des options avancées telles que le cache PHP et l’orchestration, qui permettent de franchir un cap de performance supplémentaire.
« L’installation m’a paru accessible, malgré quelques ajustements sur les permissions et la configuration des sockets PHP. »
Marc P.
Source : W3Techs, « Usage of web servers for websites », w3techs.com, 2016 ; NGINX, « About NGINX », nginx.com ; Raspberry Pi Foundation, « Web servers », raspberrypi.org.
