• HOME
  • HTML
  • CSS
  • PHP
    • Début d'une page - Variable
    • Afficher et Concaténer des variables
    • Symboles à connaître
    • Conditions: IF, ELSE, ELSEIF
    • Conditions AND, OR
    • Conditions SWITCH
    • Boucles WHILE, FOR
    • Les tableaux / EN COUR ...
    • Les fonctions / Bientôt ...
  • SQL
    • Installer MYSQL
    • Interroger une base de données
    • Requete SQL / prochainement
    • PhpMyadmin serveur / prochainement
  • RÉSEAU
    • Afficher le mot de passe wifi
    • Le model OSI
    • Cisco Packet Tracer
    • WINDOWS 10 : LA DÉCOUVERTE DU RÉSEAU NE FONCTIONNE PAS
  • LINUX
    • Mettre à jour linux
    • Commandes Linux
    • permissions
    • Installer nginx (Serveur Web)
    • Installer Composer 2
    • Installer Symfony
    • Installer Mysql sur Ubuntu
    • VIM + liste commande
    • Installer Prestashop
    • Odoo / prochainement
    • Sécuriser un site avec HTTPS (Cerbot)
    • Android Téléphone Virtuel
    • Espace d'échange (swap)
    • Raspberry Pi : Authentification SSH par certificat
    • Ubuntu Software
  • WINDOWS
    • Créer une clé USB multiboot / prochainement
    • WSL2
    • WSL2 accéder aux fichiers Linux depuis Windows
    • WSL2 Sauvegarder et restaurer vos distrib Linux
    • Mot de passe Windows perdu
    • Effacer totalement un disque dur ou un SSD
    • Sauvegarder / Restaurer les drivers Windows
    • VMware Workstation / prochainement
    • Comment activer le bac à sable dans Windows 11 / prochainement
  • RASPBERRY
    • Créez une carte SD Raspbian pour votre Raspberry Pi depuis Windows
    • Premier démarrage
    • Mettre à jour son Raspberry
    • Mettre à Jour Raspberry Pi OS
    • Voir le réseau raspberry depuis Windows
    • Se connecter au bureau de son Raspberry depuis un PC Windows
    • Ouvrir les ports
    • SSH
    • Faire un NAS
    • Transmission
    • HTML - PHP - MYSQL - PHP ADMIN / Bientôt ...
    • Plusieurs sites Web à partir d'un seul et même serveur
    • Plex seveur multimédia
    • Recalbox / Kodi pour raspberrypi 3b+ / Bientôt
    • Mettre tout le système sur disque dur USB ou SSD
    • Installer Spotify
  • DIVERS
    • Programme
    • Ebook
    • Formation
    • LIENS

NGINX

Mis à jour le 18 Novembre 2021

NGINX Open Source ou NGINX est un logiciel libre de serveur Web ainsi qu'un proxy inverse écrit par Igor Sysoev.

Table des matières

  • 1. Installer NGINX
  • 2. Configuration de NGINX
  • 3. Créer plusieurs sites
    • 3.1. Emplacement des sites internet
    • 3.2. Créer dossier sites web
    • 3.3. Modifier les droits
    • 3.4. Créer fichier index.html
  • 4. Configuration d'un server block
  • 5. Fichier HOSTS
  • 6. Créer des liens symboliques
    • 6.1. Redémarer le serveur
    • 6.2. Ouvrir le site1 dans Visuel Studio Code
  • 7. PHP
    • 7.1. Installer PHP
    • 7.2. Créer le site3
    • 7.3. Créer un server block
    • 7.4. Créer un lien symbolique
    • 7.5. Redémarer le serveur


1. Installer NGINX :


sudo apt install nginx
sudo service nginx start

Vous pouvez tester dés à present en ouvrant votre navigateurs web préféré et entrez l’adresse ip de votre serveur ou localhost dans la barre d’adresse :


image

2. Configuration de NGINX :

  • Pour la configuration tout se passe dans le dossier /etc/nginx :
  • cd /etc/nginx
    ls -l
    total 64
    drwxr-xr-x 2 root root 4096 mai 25 19:10 conf.d
    -rw-r--r-- 1 root root 1077 fév  4  2019 fastcgi.conf
    -rw-r--r-- 1 root root 1007 fév  4  2019 fastcgi_params
    -rw-r--r-- 1 root root 2837 fév  4  2019 koi-utf
    -rw-r--r-- 1 root root 2223 fév  4  2019 koi-win
    -rw-r--r-- 1 root root 3957 fév  4  2019 mime.types
    drwxr-xr-x 2 root root 4096 mai 25 19:10 modules-available
    drwxr-xr-x 2 root root 4096 sep 22 17:35 modules-enabled
    -rw-r--r-- 1 root root 1490 fév  4  2019 nginx.conf
    -rw-r--r-- 1 root root  180 fév  4  2019 proxy_params
    -rw-r--r-- 1 root root  636 fév  4  2019 scgi_params
    drwxr-xr-x 2 root root 4096 sep 24 04:14 sites-available
    drwxr-xr-x 2 root root 4096 sep 22 17:35 sites-enabled
    drwxr-xr-x 2 root root 4096 sep 22 17:35 snippets
    -rw-r--r-- 1 root root  664 fév  4  2019 uwsgi_params
    -rw-r--r-- 1 root root 3071 fév  4  2019 win-utf

    nginx.conf est le fichier de configuration principale
    conf.d dossier contenant des fichiers de configuration additionels
    sites-available dossier contenant la liste des fichiers de configuration des sites
    sites-enable dossier contenant la liste des fichiers de configuration des sites actifs


3. Créer plusieurs sites :

  • Emplacement des sites internet (/var/www/) :
  • cd /var/www/

  • Nous allons créer notre dossier où l’on va mettre notre ou nos sites web. Puis une page html simpliste :
  • sudo mkdir /var/www/site1
    sudo mkdir /var/www/site2

  • Maintenant nous allons modifier les droits des dossiers (site1,site2) car le propriétaire c'est root :
  • sudo chown david:david site1 site2
    Normalement si vous faite un ls -l vous devriez avoir:
    ls -l
    total 12
    drwxr-xr-x 2 root  root  4096 sep 24 04:16 html
    drwxr-xr-x 2 david david 4096 sep 22 19:16 site1
    drwxr-xr-x 2 david david 4096 sep 22 19:07 site2

  • Nous allons créer un fichier index.html pour le site1/site2 :
  • touch /var/www/site1/index.html
    touch /var/www/site2/index.html

  • Maintenant nous aller ecrire une page html simpliste pour le site1 faite pareil pour site 2
  • vim /var/www/site1/index.html
    Sur la fenetre qui s'ouvre taper i puis Bienvenue sur le site 1 puis echap puis taper :x pour fermer est enristrer le fichier


4. Configuration d'un server block :

  • Créer un server block pour notre site1 d’abord en copiant le server block par défaut de nginx. :
  • sudo cp /etc/nginx/sites-available/default  /etc/nginx/sites-available/site1

  • Maintenant ouvrons le fichier site1 :
  • sudo vim /etc/nginx/sites-available/site1
    Notre fichier devrait ressembler à ca :
    # site1
    
    server {
    listen 80;
    listen [::]:80;
    
    root /var/www/site1;
    index index.html index.htm index.nginx-debian.html;
    
    server_name site1.local;
    
    location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ =404;
    }
    
    }
    Sauvegarder votre ficher site1 (esc puis :x) et refaite la même chose chose pour site2.


    Pour faire simple faites juste une copie de site1 vers site 2
    sudo cp /etc/nginx/sites-available/site1  /etc/nginx/sites-available/site2


    Maintenant ouvrons le fichier site2:
    sudo vim /etc/nginx/sites-available/site2

    Notre fichier devrait ressembler à ca :
    # site2
    
    server {
    listen 80;
    listen [::]:80;
    
    root /var/www/site2;
    index index.html index.htm index.nginx-debian.html;
    
    server_name site2.local;
    
    location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ =404;
    }
    
    }
    Sauvegarder votre ficher site2 (esc puis :x).


    5. Fichier HOSTS :


    Maintenant que tous est presque fini nous allons éditer notre fichier hosts et ajouter les correspondances adresse IP et noms de domaines :

  • LINUX
  • sudo vim /etc/hosts

  • WINDOWS
  • C:\Windows\System32\drivers\etc\hosts
    127.0.0.1       site1.local
    127.0.0.1       site2.local


    6. Créer des liens symboliques :


    L’étape finale de notre configuration consiste à activer les blocs server que nous avons crée.

    Donc nous allons créer des liens symboliques vers le répertoire sites-enable que nginx lit toujours au démarrage. :

    sudo ln -s /etc/nginx/sites-available/site1 /etc/nginx/sites-enabled/
    sudo ln -s /etc/nginx/sites-available/site2 /etc/nginx/sites-enabled/

  • Vérifions maintenant que tout se passe bien avec la commande :
  • sudo nginx -t
    Si tout se passe bien nous devrons avoir quelque chose qui ressemble à ca :
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful

  • Redémarer le serveur :
  • sudo service nginx reload


  • Maintenant que tout est fini lançons les tests :
  • curl site1.local
    Notre fichier devrait ressembler à ca :
    <html><body>Bienvenue sur le site 1</body></html>

    Si problème faire sudo service nginx start

  • Ouvrir le site 1 dans Visuel studio code :
  • cd  /var/www/site1
    puis
    code .

    Voila maintenant nous savons héberger plusieurs sites dans un même serveur avec Nginx. Il n’y pas de limite pour les servers blocks vous pouvez en créer autant que vous voulez mais dépendant de la capacité de votre serveur bien sûr.



6. PHP :

  • Installer PHP :
  • sudo apt install php7.4-fpm
    sudo apt install php7.4-cli

  • Créer le site3 pour un site en PHP :
  • sudo mkdir /var/www/site3

  • Maintenant nous allons modifier les droits, car le propriétaire c'est root :
  • cd /var/www
    sudo chown david:david site3

  • Nous allons créer un fichier index.php pour le site3 :
  • touch /var/www/site3/index.php

  • Maintenant nous aller ecrire une page php simpliste pour le site3
  • vim /var/www/site3/index.php
    Sur la fenetre qui s'ouvre taper i puis
    <?php phpinfo(); ?>
    puis echap puis taper :x pour fermer est enristrer le fichier


  • Créer un server block pour notre site3 :
  • sudo vim /etc/nginx/sites-available/site3
    # Site3
    
    server {
    	listen 80;
    	listen [::]:80;
    
    	root /var/www/site3;
    
    	# Add index.php to the list if you are using PHP
    	index index.html index.php index.nginx-debian.html;
    
    	server_name site3.local;
    
            
    location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.4-fpm.sock;      
        }
    
    }

  • Créer un lien symbolique :
  • sudo ln -s /etc/nginx/sites-available/site3 /etc/nginx/sites-enabled/

  • Vérifions maintenant que tout se passe bien avec la commande :
  • sudo nginx -t
    Si tout se passe bien nous devrons avoir quelque chose qui ressemble à ca :
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful

  • Modifier le fichier HOST sur Windows
  • Maintenant que tous est presque fini nous allons éditer notre fichier hosts et ajouter les correspondances adresse IP et noms de domaines :

    C:\Windows\System32\drivers\etc\hosts
    127.0.0.1       site1.local
    127.0.0.1       site2.local
    127.0.0.1       site3.local

  • Redemarer le serveur :
  • sudo service nginx reload
    sudo service php7.4-fpm restart