Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
logiciel:internet:nginx:start [2020/10/27 07:49] – [Pré-requis] adminlogiciel:internet:nginx:start [2022/08/13 21:57] (Version actuelle) – modification externe 127.0.0.1
Ligne 3: Ligne 3:
 ====== Nginx : le serveur Web hautes performances (LEMP) ====== ====== Nginx : le serveur Web hautes performances (LEMP) ======
  
-====== Introduction ======+===== Introduction =====
  
 Nginx (« engine X ») est un serveur Web, similaire à Apache, qui peut être utilisé : Nginx (« engine X ») est un serveur Web, similaire à Apache, qui peut être utilisé :
Ligne 18: Ligne 18:
 Le fichier de configuration est **/etc/nginx/nginx.conf**. Le fichier de configuration est **/etc/nginx/nginx.conf**.
  
-Voir le guide du débutant : [[logiciel:internet:nginx:debutant:start|]]+Voir le guide du débutant : [[tutoriel:internet:nginx:debutant:start]]
  
-====== Pré-requis ======+===== Pré-requis =====
  
-====== Installation ======+===== Installation =====
  
   - Installez le paquet **[[apt>nginx]]** ou en ligne de commande :<cli>...@...:~$ sudo apt install nginx</cli>L'installation a créé les arborescences :<cli prompt='$ '>...@...:~$ tree /var -d   - Installez le paquet **[[apt>nginx]]** ou en ligne de commande :<cli>...@...:~$ sudo apt install nginx</cli>L'installation a créé les arborescences :<cli prompt='$ '>...@...:~$ tree /var -d
Ligne 43: Ligne 43:
 <...>Le statut **active** indique que le service fonctionne correctement. <...>Le statut **active** indique que le service fonctionne correctement.
 </cli> </cli>
-    * ou en ouvrant **[[http://localhost]]** ou [[http://IP_du_serveur]] (par ex. [[http://framboise.local]]), il s'affiche :{{ :logiciel:internet:nginx:nginx_01.png |}} +    * ou en ouvrant **[[http://localhost]]** ou [[http://IP_du_serveur]] (par ex. [[http://framboise.local]]), il s'affiche :{{ logiciel:internet:nginx:nginx_01.png |}} 
-  - **[[tutoriel:internet:lemp:racine:start|]]**+  - **[[tutoriel:internet:serveur:racine:start]]**
  
 <WRAP center round info 60%> <WRAP center round info 60%>
  
 Installez le paquet **[[apt>php-xml]]** ou en ligne de commande :<cli>$ sudo apt install php-xml</cli> Installez le paquet **[[apt>php-xml]]** ou en ligne de commande :<cli>$ sudo apt install php-xml</cli>
- 
- 
  
 L'utilisateur **$USER** (qui fait partie du groupe **www-data**) a lui aussi accès à ce répertoire. L'utilisateur **$USER** (qui fait partie du groupe **www-data**) a lui aussi accès à ce répertoire.
Ligne 57: Ligne 55:
 </WRAP> </WRAP>
  
-====== Configuration ======+===== Configuration =====
  
 Le fichier de configuration de **nginx** est **/etc/nginx/nginx.conf**. Le fichier de configuration de **nginx** est **/etc/nginx/nginx.conf**.
Ligne 70: Ligne 68:
  
 <WRAP center round info 60%> <WRAP center round info 60%>
-Pour en savoir plus sur le fichier de configuration, voir [[logiciel:internet:nginx:nginx.conf:start|]]+Pour en savoir plus sur le fichier de configuration, voir [[logiciel:internet:nginx:nginx.conf:start]]
 </WRAP> </WRAP>
  
-===== Configuration de Nginx en serveur Web =====+==== Changer le port de fonctionnement de Nginx ==== 
 + 
 +Nginx fonctionne par défaut sur le port 80. Pour changer ce port, par exemple en 8080 
 +  - Éditez avec les droits d'administration le fichier **/etc/nginx/sites-enabled/default** ((c'est la configuration par défaut)) pour définir le port souhaité (ici, 8080) :<code - /etc/nginx/sites-enabled/default>server { 
 +    listen 8080; 
 +}</code> 
 +  - Démarrez le serveur : <cli prompt='$ '>...@...:~ $ sudo systemctl start nginx</cli> 
 +  - Vous pouvez maintenant accéder à votre site sur le port 8080 ([[http://monsite.tld:8080]]). 
 +==== Configuration de Nginx en serveur Web ====
  
 La configuration de Nginx en serveur Web définit les URL qu'il gère et comment il traite les requêtes HTTP pour ces URL. La configuration de Nginx en serveur Web définit les URL qu'il gère et comment il traite les requêtes HTTP pour ces URL.
  
-==== Gestion d'erreurs ====+=== Gestion d'erreurs ===
  
 La directive **error_page** demande à Nginx de renvoyer une page personnalisée ou un autre URI pour un code d'erreur donné. La directive **error_page** demande à Nginx de renvoyer une page personnalisée ou un autre URI pour un code d'erreur donné.
Ligne 123: Ligne 129:
   * **open_file_cache_errors** empêche d'écrire un message d'erreur si un fichier n'est pas trouvé.\\ Ce n'est pas nécessaire ici car les fichiers manquants sont correctement gérés.   * **open_file_cache_errors** empêche d'écrire un message d'erreur si un fichier n'est pas trouvé.\\ Ce n'est pas nécessaire ici car les fichiers manquants sont correctement gérés.
  
-===== Serveur de contenu statique =====+==== Serveur de contenu statique ====
  
 Le fichier de configuration peut inclure plusieurs blocs server se distinguant par les ports sur lesquels ils écoutent et par les noms de serveurs. Le fichier de configuration peut inclure plusieurs blocs server se distinguant par les ports sur lesquels ils écoutent et par les noms de serveurs.
  
-==== location ====+=== location ===
  
 Une fois que nginx décide quel serveur traite une requête, il teste l'URI spécifié dans l'en-tête de la requête par rapport aux paramètres des directives location définies dans le bloc server. Une fois que nginx décide quel serveur traite une requête, il teste l'URI spécifié dans l'en-tête de la requête par rapport aux paramètres des directives location définies dans le bloc server.
Ligne 161: Ligne 167:
 En cas d'erreur, recherchez la cause dans les fichiers /var/log/nginx/access.log et /var/log/nginx/error.log En cas d'erreur, recherchez la cause dans les fichiers /var/log/nginx/access.log et /var/log/nginx/error.log
  
-==== root ====+=== root ===
  
 La directive **root** spécifie le répertoire racine qui sera utilisé pour rechercher un fichier. Pour obtenir le chemin d'un fichier demandé, Nginx ajoute l'URI de la requête au chemin spécifié par la directive root. La directive **root** spécifie le répertoire racine qui sera utilisé pour rechercher un fichier. Pour obtenir le chemin d'un fichier demandé, Nginx ajoute l'URI de la requête au chemin spécifié par la directive root.
Ligne 192: Ligne 198:
 Si une requête se termine par une barre oblique, Nginx la traite comme une demande de répertoire et essaie de trouver un fichier d'index dans le répertoire. Si une requête se termine par une barre oblique, Nginx la traite comme une demande de répertoire et essaie de trouver un fichier d'index dans le répertoire.
  
-==== index ====+=== index ===
  
 La directive **index** définit le nom du fichier d'index (par défaut index.html). La directive **index** définit le nom du fichier d'index (par défaut index.html).
Ligne 234: Ligne 240:
 Par conséquent, la demande est envoyée par proxy. Par conséquent, la demande est envoyée par proxy.
  
-==== Essayer plusieurs options ====+=== Essayer plusieurs options ===
  
 La directive **try_files** vérifie si le fichier ou le répertoire spécifié existe ; Nginx effectue une redirection interne si c'est le cas, ou renvoie un code d'état si ce n'est pas le cas. La directive **try_files** vérifie si le fichier ou le répertoire spécifié existe ; Nginx effectue une redirection interne si c'est le cas, ou renvoie un code d'état si ce n'est pas le cas.
Ligne 278: Ligne 284:
 Pour plus d'informations, visionnez le webinaire à la demande [[https://www.nginx.com/resources/webinars/content-caching-nginx-plus/|Content Caching]] pour apprendre à améliorer considérablement les performances d'un site Web et approfondir les capacités de mise en cache de Nginx. Pour plus d'informations, visionnez le webinaire à la demande [[https://www.nginx.com/resources/webinars/content-caching-nginx-plus/|Content Caching]] pour apprendre à améliorer considérablement les performances d'un site Web et approfondir les capacités de mise en cache de Nginx.
  
-===== Configuration d'un serveur proxy simple =====+==== Configuration d'un serveur proxy simple ====
  
 L'une des utilisations fréquentes de nginx consiste à le configurer en tant que serveur proxy, ce qui signifie qu'un serveur reçoit les demandes, les transmet aux serveurs proxy, récupère les réponses et les envoie aux clients. L'une des utilisations fréquentes de nginx consiste à le configurer en tant que serveur proxy, ce qui signifie qu'un serveur reçoit les demandes, les transmet aux serveurs proxy, récupère les réponses et les envoie aux clients.
Ligne 360: Ligne 366:
 De nombreuses autres directives peuvent être utilisées pour configurer davantage une connexion proxy. De nombreuses autres directives peuvent être utilisées pour configurer davantage une connexion proxy.
  
-===== Configuration de la fonction proxy de FastCGI =====+==== Configuration de la fonction proxy de FastCGI ====
  
 nginx peut être utilisé pour router des requêtes vers des serveurs FastCGI qui exécutent des applications construites avec différents frameworks et langages de programmation tels que PHP. nginx peut être utilisé pour router des requêtes vers des serveurs FastCGI qui exécutent des applications construites avec différents frameworks et langages de programmation tels que PHP.
Ligne 390: Ligne 396:
 Cela va mettre en place un serveur qui acheminera toutes les demandes à l'exception des demandes d'images statiques au serveur proxy opérant sur localhost:9000 via le protocole FastCGI. Cela va mettre en place un serveur qui acheminera toutes les demandes à l'exception des demandes d'images statiques au serveur proxy opérant sur localhost:9000 via le protocole FastCGI.
  
-===== Serveurs Virtuels =====+==== Serveurs Virtuels ====
  
 Voir [[tutoriel:internet:nginx:vhosts:start]] Voir [[tutoriel:internet:nginx:vhosts:start]]
Ligne 476: Ligne 482:
 si vous allez à votre adresse IP sur votre navigateur, vous devriez voir «Succès! Le bloc de serveur example.com fonctionne !>> si vous allez à votre adresse IP sur votre navigateur, vous devriez voir «Succès! Le bloc de serveur example.com fonctionne !>>
  
-===== Sécurisation avec OpenSSL =====+==== Sécurisation avec OpenSSL ====
  
   * [[tutoriel:internet:nginx:ssl:autosigne:start]]   * [[tutoriel:internet:nginx:ssl:autosigne:start]]
-    * [[tutoriel:internet:nginx:ssl:autosigne:raspi:start|]]+    * [[tutoriel:internet:nginx:ssl:autosigne:raspi:start]]
   * [[tutoriel:internet:nginx:ssl:letsencrypt:start]]   * [[tutoriel:internet:nginx:ssl:letsencrypt:start]]
-    * [[tutoriel:internet:nginx:ssl:letsencrypt:raspi:start|]] 
  
 +===== Utilisation =====
  
-====== Utilisation ====== +==== Commandes de gestion de Nginx ====
- +
-===== Commandes de gestion de Nginx =====+
  
 Le serveur est en cours d'exécution. Le serveur est en cours d'exécution.
Ligne 508: Ligne 512:
 Pour obtenir la liste de tous les processus nginx en cours d'exécution, vous pouvez lancer :<cli>$ sudo ps -ax | grep nginx</cli> Pour obtenir la liste de tous les processus nginx en cours d'exécution, vous pouvez lancer :<cli>$ sudo ps -ax | grep nginx</cli>
  
-====== Désinstallation ======+===== Désinstallation =====
  
 Comme d'habitude, <cli>$ sudo apt remove nginx</cli> Comme d'habitude, <cli>$ sudo apt remove nginx</cli>
  
-====== Voir aussi ======+===== Problèmes connus ===== 
 + 
 +??? Si on installe Nginx et qu'on essaie de le démarrer, on obtient le message suivant :<cli prompt='$ '>...@...:~ $ sudo nginx 
 + 
 +Starting nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 
 +configuration file /etc/nginx/nginx.conf test is successful 
 +[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)</cli> 
 + 
 +!!! C'est logique car Apache utilise le port 80. 
 + 
 +Il faut changer le port de fonctionnement de Nginx, par exemple en 8080. 
 + 
 +  - Éditez avec les droits d'administration le fichier **/etc/nginx/sites-enabled/default** ((c'est la configuration par défaut)) pour définir le port souhaité (ici, 8080) :<code - /etc/nginx/sites-enabled/default>server { 
 +    listen 8080; 
 +}</code> 
 +  - Démarrez le serveur : <cli prompt='$ '>...@...:~ $ sudo systemctl start nginx</cli> 
 +  - Vous pouvez maintenant accéder à votre site sur le port 8080 ([[http://monsite.tld:8080]]). 
 +===== Voir aussi =====
  
   * **(en)** [[https://nginx.org/en/docs/beginners_guide.html]]   * **(en)** [[https://nginx.org/en/docs/beginners_guide.html]]
   * **(en)** documentation :[[https://docs.nginx.com/nginx/admin-guide/]]   * **(en)** documentation :[[https://docs.nginx.com/nginx/admin-guide/]]
-  * **(fr)** [[https://web.developpez.com/tutoriels/creer-serveur-web-nginx-php-mariadb/|Créer un serveur Web Nginx + PHP7 + Maria DB (Mysql) + PhpMyAdmin sous Debian 9 Stretch]] +  * **(fr)** [[https://web.developpez.com/tutoriels/creer-serveur-web-nginx-php-mariadb/|Créer un serveur Web Nginx + PHP7 + Maria DB (Mysql) + PhpMyAdmin sous Debian 9 Stretch]] 
 +  **(fr)** [[https://prograide.com/pregunta/32900/comment-demarrer-nginx-via-un-autre-port-autre-que-80]]
  
 ---- ----
 //Basé sur << [[http://|Article]] >> par Auteur.// //Basé sur << [[http://|Article]] >> par Auteur.//