Installer Nginx Sur Raspberry Pi (Guide de démarrage)


Nginx est avant tout un serveur web, mais peut également être utilisé comme serveur proxy. Il est gratuit, open-source et souvent en concurrence directe avec Apache pour créer des applications web. En tant que développeur web, je suis plus habitué à Apache, mais Nginx est connu pour être presque 3 fois plus rapide et plus léger, ce qui est génial pour un Raspberry Pi. Voyons donc comment l’installer sur votre Pi.

Le paquet principal de Nginx est disponible dans le dépôt par défaut de Raspberry Pi, il peut donc être installé directement avec apt : « sudo apt install nginx ». Les fichiers web peuvent ensuite être créés sous /var/www/html et la configuration est faite dans /etc/nginx.

Ne vous inquiétez pas, je vais vous expliquer tout cela en détail si vous avez besoin d’une approche plus progressive. Commençons par une introduction, pour être sûr que vous comprenez ce qu’est Nginx et quand l’utiliser.

À propos, si vous êtes novice sur Raspberry Pi et que vous souhaitez accélérer vos premiers pas (tout en vous amusant), n’hésitez pas à télécharger mon e-book « Maitrisez Raspberry Pi en 30 jours« . Il s’agit d’un défi de 30 jours au cours duquel vous apprendrez une nouvelle compétence chaque jour. Vous économiserez du temps et de l’argent et pourrez enfin apprécier cet appareil passionnant qu’est le Raspberry Pi. Je vous offre d’ailleurs 10% de remise aujourd’hui en utilisant ce lien !

Qu’est-ce que Nginx et pourquoi l’utiliser ?

nginx [engine x] est un serveur proxy HTTP et inverse, un serveur proxy de messagerie et un serveur proxy TCP/UDP générique, écrit à l’origine par Igor Sysoev.

Site web de Nginx (en anglais)

Sur Raspberry Pi, nous utiliserons généralement Nginx dans deux cas : comme serveur web ou comme proxy web. Prenons quelques secondes pour présenter ces deux utilisations.

Serveur web

Un serveur web est simplement une application installée sur un serveur, pour répondre aux requêtes HTTP (ou HTTPS). Si vous tapez l’adresse IP du Raspberry Pi dans un navigateur Web directement après l’installation du système, vous obtiendrez une erreur. Nginx est le logiciel dont vous avez besoin pour que votre Pi réponde à cette requête.

Si vous avez déjà utilisé Apache ou même un serveur web Python, c’est la même idée.

Nginx est connu pour utiliser moins de mémoire et de ressources tout en étant 2,5 fois plus rapide qu’Apache dans l’ensemble. Nginx peut également gérer un volume élevé de connexions.

Cela en fait le choix idéal pour les sites web à fort trafic (Netflix l’utilise par exemple), ou les serveurs à faibles ressources (comme un Raspberry Pi !).

Téléchargez mon antisèche !
Si comme moi, vous avez tendance à mélanger les langages, téléchargez mon antisèche pour Python au format PDF.

Vous aider à l’installer sur votre Raspberry Pi est mon objectif principal aujourd’hui, nous y reviendrons dans la prochaine partie. Mais d’abord, parlons un peu de l’utilisation du proxy web.

Proxy Web

Un proxy web répond également aux requêtes web, mais il agit généralement comme une passerelle entre l’utilisateur sur Internet et une autre application. Par exemple, Nginx peut répondre aux requêtes sur le port 80 et les rediriger vers votre serveur Plex, l’interface web de votre Torrent box ou encore Webmin. Ces applications qui écoutent sur un port différent par défaut.

Dans mon travail, nous avions un serveur Rocket Chat qui écoutait sur un port précis (3000 je crois), mais quand on tapait l’adresse IP sans le port, Nginx répondait à la requête et affichait la page Rocket Chat automatiquement. C’est bien plus pratique pour partager l’URL avec d’autres utilisateurs.

Bien sûr, un proxy web n’est pas seulement utilisé pour des raisons de commodité, mais aussi pour renforcer la sécurité, améliorer les performances, assurer la journalisation ou même équilibrer la charge (vous pouvez répartir les demandes sur plusieurs serveurs).

Démarrer avec Nginx sur Raspberry Pi

Peut-on utiliser Nginx sur Raspberry Pi ?

Nginx peut être installé sur Raspberry Pi avec APT. Le paquet Nginx est disponible dans le dépôt par défaut et est bien supporté sur Raspberry Pi.

À propos, c’est une bonne idée de l’utiliser comme serveur web sur Raspberry Pi, car il est généralement plus léger et plus rapide que les autres solutions. (comme Apache).

Comment installer Nginx sur un Raspberry Pi ?

L’installation de Nginx sur un Raspberry Pi est simple :

  • Ouvrez un terminal.
  • Assurez-vous que vos listes d’APT sont à jour avec :
    sudo apt update
  • Puis installez Nginx avec :
    sudo apt install nginx

Quelques secondes plus tard, Nginx est installé sur votre appareil, et vous pouvez déjà commencer à l’utiliser.

Si les commandes Linux ce n’est pas trop votre truc, n’hésitez pas à jeter un œil à cet article qui vous explique les commandes qu’il faut absolument connaître. Je vous donne aussi une antisèche à télécharger pour les avoir toujours sous la main !

Premiers pas avec Nginx sur Raspberry Pi

Pour vérifier si tout a été installé correctement, commencez par visiter http://IP, en remplaçant « IP » par l’adresse IP de votre Raspberry Pi.
Vous pouvez consulter mon article sur comment trouver l’adresse IP de votre Raspberry Pi si vous ne la connaissez pas.

Dans votre navigateur web, vous devriez obtenir quelque chose comme ça :

Cela signifie que Nginx est installé et que le service web a correctement démarré.
L’emplacement par défaut de la page est /var/www/html/index.nginx-debian.html.
Vous pouvez la modifier, ou la supprimer et repartir de zéro.

Vos fichiers web doivent être enregistrés sous /var/www/html pour être accessibles depuis un navigateur web. Utilisez index.html comme page principale à afficher lorsque vous accédez à http://IP.

Téléchargez mon antisèche !
Si comme moi, vous avez tendance à mélanger les langages, téléchargez mon antisèche pour Python au format PDF.

Si vous devez modifier quelque chose dans la configuration par défaut de Nginx, vous pouvez éditer le fichier de configuration principal avec :
sudo nano /etc/nginx/nginx.conf

Et comme pour Apache, il existe deux sous-dossiers permettant de modifier la configuration de chaque site Web ou application hébergée sur votre Raspberry Pi :
/etc/nginx/sites-enabled/
/etc/nginx/sites-available/

Nous y reviendrons plus tard pour autoriser le code PHP dans nos fichiers web.

Vous trouverez la documentation officielle sur leur site web si vous avez besoin de plus d’explications.

Configurer Nginx pour gérer PHP et MySQL

Pour certains projets, les fichiers HTML peuvent suffire. Mais, dans la plupart des cas, vous devrez utiliser du code PHP et une base de données MySQL. Ce n’est pas intuitif lorsque vous le faites pour la première fois, donc je vais vous guider également sur ce point. Cela vous aidera à mieux comprendre la configuration de Nginx.

Installation de PHP

PHP est utilisé pour ajouter du contenu dynamique à vos pages Web. Par exemple, ce site Web utilise le même template HTML pour tous les articles et le contenu de l’article est dynamique, utilisant PHP pour afficher le tutoriel que vous recherchez (en fonction de l’URL).

Vous pouvez activer PHP sur votre serveur Nginx en suivant cette procédure :

  • Tout d’abord, vous devez installer PHP sur votre système :
    sudo apt install php-fpm
    PHP-FPM est un meilleur choix que le paquet PHP classique en termes de performances. Et il fonctionne particulièrement bien avec Nginx.
  • Ensuite, vous devez dire à Nginx d’accepter le code et l’extension PHP (index.php par exemple).
    • Modifier le fichier de configuration par défaut :
      sudo nano /etc/nginx/sites-enabled/default
    • Ajoutez index.php à la liste des fichiers d’index :
      index index.php index.html index.htm index.nginx-debian.html;
    • Décommentez les lignes concernant PHP dans le même fichier de configuration :

      La configuration est déjà présente dans le fichier de configuration par défaut, il suffit de supprimer le symbole ‘#’ au début de ces quatre lignes.
    • Sauvegarder et quitter (CTRL+O, CTRL+X)
  • Redémarrez Nginx pour appliquer les changements :
    sudo service nginx restart

Vous pouvez maintenant créer un fichier PHP de test sous /var/ww/html et vérifier s’il fonctionne correctement.
Voici un exemple simple :

<?php
phpinfo();
?>

Placez ces lignes dans un fichier (test.php, par exemple), et accédez-y via votre navigateur web (http://IP/test.php).
Si tout est correctement configuré, vous devriez obtenir quelque chose comme ça :

Vous pouvez désormais utiliser du code PHP dans n’importe quelle page Web.

Installation de MySQL

Un serveur MySQL est souvent utilisé avec PHP pour stocker des données sur le serveur. Si je prends le même exemple qu’avec PHP, les tutoriels écrits sur ce site sont tous stockés dans une base de données. Lorsque vous accédez à une URL spécifique, PHP va faire une requête au serveur MySQL pour trouver le texte correspondant à afficher.

Pour utiliser MySQL avec Nginx, vous devez d’abord installer un serveur MySQL sur votre Raspberry Pi. J’ai un guide complet à ce sujet, je vous laisse donc cliquer sur le lien et suivre l’autre tutoriel en premier. Je vais me concentrer ici sur la façon d’utiliser les fonctions MySQL avec PHP sur un serveur Nginx.

Le processus est le même que pour un autre serveur web, il suffit d’installer un module PHP :
sudo apt install php-mysql

Une fois cela fait, vous pouvez maintenant utiliser les fonctions MySQL dans votre code. Consultez ce tutoriel sur W3Schools si vous ne savez pas comment faire.

Téléchargez mon antisèche !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.

FAQ

Apache vs Nginx : lequel est le meilleur sur Raspberry Pi ?

Globalement, Nginx offre de meilleures performances et peut gérer plus de connexions simultanées qu’Apache.

Sur les petits projets, je recommanderais d’utiliser celui avec lequel vous êtes le plus familier. Mais si vous utilisez un Raspberry Pi avec moins de 512M de RAM ou un CPU monocœur (Pi Zero ou plus anciens, par exemple), tester Nginx peut être une bonne idée. Même chose pour les projets plus importants, avec de nombreuses requêtes en même temps.

J’ai tendance à préférer Apache parce que j’y suis habitué, mais en théorie, Nginx est souvent un meilleur choix.

Puis-je exécuter du code Python avec Nginx ?

Par défaut, Nginx ne sait pas comment exécuter des scripts Python. Comme pour PHP, l’utilisation de fastcgi_pass dans la configuration par défaut est nécessaire pour utiliser du code Python sur votre serveur Nginx.

Une autre possibilité serait de démarrer un serveur web Python sur un autre port, et d’utiliser la fonction proxy de Nginx pour rediriger les requêtes HTTP vers ce port. Mais je doute que Nginx soit vraiment utile dans ce cas, vous pouvez simplement utiliser le serveur web Python directement.

Téléchargez mon antisèche !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.

Ressources supplémentaires pour votre Raspberry Pi

Initiation au Raspberry Pi en vidéo
Si vous débutez et voulez passer rapidement à la vitesse supérieure, j’ai exactement ce qu’il vous faut.
Regardez ma formation vidéo qui vous aidera à démarrer du bon bien, choisir votre matériel, installer les meilleures applications et vous lancer directement dans vos premiers projets avec mon aide.
Regarder les vidéos dès maintenant

Maîtrisez votre Raspberry Pi en 30 jours
Vous avez besoin de plus ? Si vous êtes à la recherche des meilleures astuces pour devenir expert sur Raspberry Pi, ce livre est fait pour vous. Développez vos compétences sous Linux et pratiquez via de nombreux projets en suivant mes guides étape par étape. 10% de remise aujourd’hui !
Télécharger le livre au format PDF ici

Maîtrisez Python sur Raspberry Pi
Pas besoin d’être un génie pour coder quelques lignes pour votre Raspberry Pi.
Je vous apprends juste ce qu’il faut sur Python afin de réaliser n’importe quel projet. La seconde partie du livre est d’ailleurs consacrée à des exemples de projets ou je vous guide pas à pas.
Ne perdez pas de temps, apprenez le strict nécessaire et économisez 10% avec ce lien :
Télécharger maintenant

Autres ressources pour profiter de votre Raspberry Pi
J’ai regroupé toutes mes recommandations de logiciels, sites utiles et de matériel sur cette page de ressources. Je vous invite à la consulter régulièrement pour faire les bons choix et rester à jour.
Visiter les pages ressources


Ce tutoriel ne marche plus à 100%? Prévenez-moi pour que je le mette à jour!

Patrick Fromaget

Je suis l'auteur principal et le créateur de RaspberryTips. Mon but est de vous aider sur tous vos problèmes qui concernent Raspberry Pi en publiant des guides détaillés et des tutoriels rapides. Dans la vraie vie, je suis administrateur système (Linux principalement) avec une solide expérience dans le développement web.

Recent Posts