Nginx

Article en cours de rédac­tion

0. Avant Propos :

Nginx (“engine x”) est un ser­veur web, plus effi­cace et moderne que apache2. Nginx peut être uti­li­sé en tant que ser­veur web com­plet (php, bases de don­nées, etc), mais je l’u­ti­lise uni­que­ment pour la dis­tri­bu­tion de fichiers vidéo sta­tiques pour le site. Ce n’est donc pas un tuto­riel com­plet, mais le mini­mum pour dis­po­ser de fichiers sur le net.

1. Prérequis :

Docker est ins­tal­lé et fonc­tion­nel. Voir ici si ce n’est pas le cas.

2. Télécharger l’image officielle de Nginx :

docker pull nginx

3. Créer un répertoire pour les fichiers de configuration et le contenu web :

mkdir -p ~/nginx/html

Tu peux pla­cer ton fichier index.html ou d’autres fichiers dans le réper­toire ~/nginx/html.

Exemple de conte­nu de index.html :

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bienvenue sur Nginx !</title>
</head>
<body>
<h1>Bienvenue sur votre serveur Nginx en Docker !</h1>
</body>
</html>

4. Lancer un conteneur Nginx :

Main­te­nant, tu peux lan­cer un conte­neur Nginx en map­pant le réper­toire local que tu viens de créer vers le réper­toire /usr/share/nginx/html du conte­neur, qui est l’en­droit où Nginx recherche le conte­nu web par défaut.

Voi­ci la com­mande pour créer et démar­rer le conte­neur Nginx :

docker run -d \
--name nginx-container \
-p 80:80 \
-v ~/nginx/html:/usr/share/nginx/html:ro \
--restart unless-stopped \
nginx

Expli­ca­tion des options :
‑d : Démarre le conte­neur en mode déta­ché (en arrière-plan).
–name nginx-contai­ner : Donne un nom au conte­neur (ici nginx-contai­ner).
‑p 80:80 : Mappe le port 80 de l’hôte (machine locale) au port 80 du conte­neur (port HTTP par défaut de Nginx).
‑v ~/nginx/html:/usr/share/nginx/html:ro : Monte le réper­toire ~/nginx/html (sur ton hôte) dans le réper­toire /usr/share/nginx/html (dans le conte­neur). L’op­tion ro signi­fie “read-only” (lec­ture seule) pour que Nginx ne modi­fie pas direc­te­ment les fichiers de l’hôte.
–res­tart unless-stop­ped : Cela per­met au conte­neur de redé­mar­rer auto­ma­ti­que­ment après un redé­mar­rage du sys­tème, sauf si tu arrêtes manuel­le­ment le conte­neur.
nginx : Uti­lise l’i­mage offi­cielle de Nginx.

5. Accéder au serveur Nginx :

http://localhost

Ou, si tu veux y accé­der depuis un autre appa­reil, uti­lise l’a­dresse IP de ton ser­veur Debian.

Si tout a été cor­rec­te­ment confi­gu­ré, tu devrais voir la page “Bien­ve­nue sur votre ser­veur Nginx en Docker !” que tu as défi­nie dans le fichier index.html.

6. Vérifier l’état du conteneur :

docker ps

7. Vérifier les logs de Nginx :

docker logs nginx-container

8. Personnalisation du fichier de configuration de Nginx :

docker run -d \
--name nginx-container \
-p 80:80 \
-v ~/nginx/html:/usr/share/nginx/html:ro \
-v ~/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
--restart unless-stopped \
nginx

Ici, ~/nginx/nginx.conf fait réfé­rence à ton fichier de confi­gu­ra­tion per­son­na­li­sé sur ton hôte, qui sera mon­té dans le conte­neur à l’emplacement où Nginx attend nor­ma­le­ment son fichier de confi­gu­ra­tion (/etc/nginx/nginx.conf).