CodeGym /Cours /Docker SELF /Installation et configuration du serveur web (Nginx/Apach...

Installation et configuration du serveur web (Nginx/Apache)

Docker SELF
Niveau 7 , Leçon 0
Disponible

Installation et configuration du serveur web (Nginx/Apache)

1. C'est quoi un serveur web ?

Aujourd'hui, on va parler de Nginx et Apache, les deux serveurs web les plus populaires. À la fin de cette session, votre serveur pourra fièrement accueillir des utilisateurs innocents sur internet.

Avant de plonger dans les commandes, essayons de comprendre ce qu’on veut vraiment accomplir. Un serveur web, c'est un programme qui reçoit des requêtes HTTP (par exemple, quand un utilisateur tape l'adresse d'un site dans son navigateur), les traite et répond avec le contenu correspondant (une page HTML, un fichier ou même une erreur « 404 Not Found »). Il sert de pont entre les utilisateurs et votre contenu.

Nginx vs Apache : le duel des serveurs web

Si Nginx et Apache se rencontraient dans un café, alors :

  • Nginx commanderait un latte à la lavande et gérerait tout de manière asynchrone : « Donne-moi ta requête, je te rends le fichier dans une minute, ne me dérange pas ! ».
  • Apache, quant à lui, serait plus traditionnel, créerait un thread pour chaque tâche et répondrait poliment, mais un peu plus lentement avec un gros volume de requêtes.

Différences majeures :

Caractéristique Nginx Apache
Architecture Asynchrone Orientée thread
Performance Élevée sous haute charge Convient pour les dynamiques (PHP/Perl)
Simplicité Configuration simple, mais avec quelques subtilités Plus universel, mais plus complexe

Quand choisir quoi ?

  • Si votre site est une poignée de fichiers statiques (par exemple, un blog ou une page de destination), alors Nginx est votre ami.
  • Si vous travaillez avec des applications web dynamiques (par exemple, un site en PHP), Apache offrira plus de flexibilité.

2. Installation du serveur web

Maintenant que tu as compris pourquoi c’est nécessaire, il est temps de commencer l’installation. On va voir comment installer Nginx et Apache. Choisis ce qui te plaît le plus, ou installe les deux pour te sentir comme un pro.

Installation de Nginx

  1. Mise à jour de la liste des paquets:

    sudo apt-get update
    
  2. Installation de Nginx:

    sudo apt-get install nginx
    
  3. Vérification du statut du serveur:

    sudo systemctl status nginx
    

    Si tout fonctionne bien, tu verras quelque chose comme : active (running).

  4. Vérification de la page par défaut: Ouvre ton navigateur et tape http://localhost. Tu devrais voir une page d’accueil Nginx qui confirme que l’installation a réussi.

Installation d'Apache

  1. Mise à jour de la liste des paquets:

    sudo apt-get update
    
  2. Installation d'Apache:

    sudo apt-get install apache2
    
  3. Vérification du statut du serveur:

    sudo systemctl status apache2
    

    Comme pour Nginx, le statut doit être « active (running) ».

  4. Vérification de la page par défaut: Ouvre ton navigateur à http://localhost. Maintenant, tu devrais voir la page par défaut d'Apache.


3. Configuration de base du serveur web

Où sont cachées les configurations ?

  • Pour Nginx, le fichier de configuration principal se trouve ici :

    /etc/nginx/nginx.conf
    
  • Pour Apache :

    /etc/apache2/apache2.conf
    

Essayez d'ouvrir les fichiers de configuration avec votre éditeur préféré (par exemple, nano) :

sudo nano /etc/nginx/nginx.conf
Important !

C'est ici que commence votre première aventure : il est possible que pour l'instant, vous ne compreniez rien, car les fichiers de configuration ressemblent à des sortilèges venus d'un jeu de rôle. Mais ne vous inquiétez pas – on va tout décortiquer ensemble.

Démarrage, arrêt et redémarrage des serveurs

Si vous savez déjà comment gérer les services sous Linux, alors "la moitié du chemin est parcourue". Voici les commandes principales pour gérer nos générateurs web :

Pour Nginx :

sudo systemctl start nginx   # Démarrer
sudo systemctl stop nginx    # Arrêter
sudo systemctl restart nginx # Redémarrer
sudo systemctl reload nginx  # Recharger la configuration

Pour Apache :

sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl reload apache2

Vérification de la configuration

Avant de redémarrer le serveur, vérifiez toujours si vous n'avez pas fait d'erreurs :

  • Pour Nginx :

      sudo nginx -t
    
  • Pour Apache :

      sudo apachectl configtest
    

Toute erreur dans la configuration sera affichée – vous ne pourrez pas casser le serveur par accident.


4. Démonstration : démarrons notre premier site

Maintenant, on va faire un truc que les développeurs web adorent – créer un site avec un nom incroyablement créatif «Hello Server».

Pour Nginx

  1. Créons un répertoire pour le site :

    sudo mkdir -p /var/www/hello
    sudo nano /var/www/hello/index.html
    

    Écrivez dans le fichier ce qui suit (oui, tout ce qui est génial est simple) :

    <h1>Hello, Nginx Server!</h1>
  2. Configurer la configuration :

    sudo nano /etc/nginx/sites-available/hello
    

    Voici un exemple de config simple :

    server {
        listen 80;
        server_name hello.local;
    
        root /var/www/hello;
        index index.html;
    
        location / {
            try_files $uri $uri/ =404;
        }
        }
  3. Activation de la configuration :

    sudo ln -s /etc/nginx/sites-available/hello /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl reload nginx
    
  4. Ajoutez une entrée dans /etc/hosts afin de configurer le nom de domaine hello.local sur la machine locale :

    127.0.0.1 hello.local
    
  5. Vérifiez le site dans un navigateur : http://hello.local.

Important !

Le fichier hosts contient le mappage des adresses IP aux noms de domaine. C'est votre serveur DNS local. Ce fichier est présent dans tous les systèmes d’exploitation. Sur Windows, il est également accessible à l’adresse C:\Windows\System32\drivers\etc\hosts

Pour Apache

  1. Créons un répertoire :

    sudo mkdir -p /var/www/hello
    sudo nano /var/www/hello/index.html
    

    Remplissez le fichier :

    <h1>Hello, Apache Server!</h1>
  2. Créons une configuration pour le virtual host :

    sudo nano /etc/apache2/sites-available/hello.conf
    

    Voici un exemple de config :

    <VirtualHost *:80>
        ServerName hello.local
        DocumentRoot /var/www/hello
    
        <Directory /var/www/hello>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
  3. Activation de la configuration :

    sudo a2ensite hello.conf
    sudo systemctl reload apache2
    
  4. Ajoutez une entrée dans /etc/hosts :

    127.0.0.1 hello.local
    
  5. Vérifiez le fonctionnement : http://hello.local.


Après la conférence d’aujourd’hui, vous êtes déjà prêt à installer et configurer un serveur web principal tout seul. Un petit effort supplémentaire – et vous pourrez déployer des sites et des applications complets qui ne ressemblent plus à un dessin d’enfant. HTTPS se cache quelque part au coin de la rue, mais on en parlera plus tard.

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION