Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédente | |||
tutoriel:reseau:http:serveur:nginx:debutant:start [2024/09/21 10:26] – supprimée - modification externe (Unknown date) 127.0.0.1 | tutoriel:reseau:http:serveur:nginx:debutant:start [2024/09/21 10:26] (Version actuelle) – ↷ Page déplacée de tutoriel:reseau:web:serveur:nginx:debutant:start à tutoriel:reseau:http:serveur:nginx:debutant:start admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ====== Nginx - Guide du débutant ====== | ||
+ | |||
+ | Ce guide décrit : | ||
+ | < | ||
+ | - comment démarrer et arrêter nginx, et recharger sa configuration, | ||
+ | - la structure du fichier de configuration | ||
+ | - et comment : | ||
+ | - configurer nginx pour servir du contenu statique, | ||
+ | - configurer nginx comme serveur proxy, | ||
+ | - le connecter avec une application FastCGI. | ||
+ | </ | ||
+ | |||
+ | **Nginx** a un processus maitre et plusieurs processus de travail. Le processus maitre lit et évalue la configuration et gère les processus de travail qui font le traitement réel des demandes. Le nombre de processus de travail, défini dans le fichier de configuration, | ||
+ | |||
+ | Par défaut, le fichier de configuration est **/ | ||
+ | ===== Démarrage, arrêt et rechargement de la configuration ===== | ||
+ | |||
+ | Pour démarrer **nginx**, lancez le fichier exécutable. | ||
+ | |||
+ | Une fois démarré, nginx peut être contrôlé en lançant l' | ||
+ | - **stop** : arrêt rapide | ||
+ | - **quit** : arrêt en douceur | ||
+ | - **reload** : rechargement du fichier de configuration | ||
+ | - **reopen** : réouverture des fichiers de log | ||
+ | |||
+ | Par exemple, pour arrêter les processus nginx en attendant que les processus de travail aient fini de servir les demandes en cours :<cli prompt=' | ||
+ | <WRAP center round important 60%> | ||
+ | Cette commande doit être exécutée par l' | ||
+ | </ | ||
+ | |||
+ | Les modifications du fichier de configuration ne seront appliquées qu' | ||
+ | |||
+ | Pour obtenir la liste de tous les processus nginx en cours d' | ||
+ | ===== Structure du fichier de configuration ===== | ||
+ | |||
+ | Les modules de Nginx sont contrôlés par des directives du fichier de configuration. | ||
+ | |||
+ | Les directives sont : | ||
+ | * **des directives simples**, composées du nom et des paramètres séparés par des espaces et terminées par un point-virgule ( ;). | ||
+ | * et **des directives de bloc**, de même structure qu'une directive simple, mais au lieu du point-virgule, | ||
+ | |||
+ | Une directive de bloc peut contenir d' | ||
+ | |||
+ | Les directives placées dans le fichier de configuration en dehors de tout contexte sont considérées comme étant dans le contexte principal. | ||
+ | |||
+ | Les directives events et http résident dans le contexte principal, le server dans http, et location dans server. | ||
+ | |||
+ | Le reste d'une ligne après un # est un commentaire. | ||
+ | |||
+ | ===== Servir du contenu statique ===== | ||
+ | |||
+ | Le serveur web a la tâche importante de distribuer des fichiers ( des images ou des pages HTML statiques, par exemple). | ||
+ | |||
+ | Vous allez mettre en œuvre un exemple dans lequel, selon la requête, les fichiers seront servis à partir de différents répertoires locaux : /data/www (qui peut contenir des fichiers HTML) et / | ||
+ | |||
+ | Pour ce faire, il faut modifier le fichier de configuration et mettre en place un bloc server à l' | ||
+ | |||
+ | Créez d' | ||
+ | |||
+ | Puis, ouvrez le fichier de configuration. Le fichier de configuration par défaut inclut déjà plusieurs exemples du bloc server, la plupart commentés. Pour l' | ||
+ | http { | ||
+ | server { | ||
+ | } | ||
+ | }</ | ||
+ | |||
+ | Le fichier de configuration peut généralement comprendre plusieurs blocs server qui se distinguent par les ports sur lesquels ils écoutent et par les noms des serveurs. | ||
+ | |||
+ | Dès que nginx a décidé quel serveur doit traiter une requête, il compare l'URI spécifié dans l' | ||
+ | |||
+ | Ajoutez le bloc " | ||
+ | location / { | ||
+ | root /data/www; | ||
+ | }</ | ||
+ | |||
+ | Ce bloc location spécifie le préfixe "/" | ||
+ | |||
+ | Pour les demandes concordantes, | ||
+ | |||
+ | Si plusieurs blocs location correspondent, | ||
+ | |||
+ | Le bloc location ci-dessus fournit le préfixe le plus court, de longueur un, et ce n'est donc que si tous les autres blocs location ne fournissent pas de correspondance que ce bloc sera utilisé. | ||
+ | |||
+ | Ajoutez maintenant le deuxième bloc location :<code - > | ||
+ | location /images/ { | ||
+ | root /data; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Il concordera avec les requêtes commençant par /images/ (location / concorde également avec ces requêtes, mais son préfixe est plus court). | ||
+ | |||
+ | La configuration résultante du bloc server devrait ressembler à ceci :<code - > | ||
+ | server { | ||
+ | location / { | ||
+ | root /data/www; | ||
+ | } | ||
+ | |||
+ | location /images/ { | ||
+ | root /data; | ||
+ | } | ||
+ | }</ | ||
+ | |||
+ | C'est déjà une configuration fonctionnelle d'un serveur qui écoute sur le port standard 80 et est accessible sur la machine locale à l' | ||
+ | |||
+ | En réponse aux requêtes dont l'URI commence par /images/, le serveur enverra des fichiers du répertoire / | ||
+ | |||
+ | Par exemple, en réponse à la requête http:// | ||
+ | |||
+ | Si ce fichier n' | ||
+ | |||
+ | Les demandes dont l'URI ne commence pas par /images/ seront transférées dans le répertoire /data/www. | ||
+ | |||
+ | Par exemple, en réponse à la requête http:// | ||
+ | |||
+ | To apply the new configuration, | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | In case something does not work as expected, you may try to find out the reason in access.log and error.log files in the directory / | ||
+ | </ | ||
+ | ===== Mise en place d'un proxy simple ===== | ||
+ | |||
+ | ===== Mise en place du proxy FastCGI ===== | ||
+ | |||
+ | ===== Voir aussi ===== | ||
+ | |||
+ | * **(en)** [[https:// | ||
+ | |||
+ | ---- | ||
+ | //Basé sur << [[https:// |