Déploiement d'un serveur web sur un serveur Linux

Objectifs

Savoir mettre en place un serveur web nginx

Déploiement de nginx

Installation de nginx

Nginx est un serveur http qui permet de donner accès à des fichiers présents sur votre machine.

Installation

Pour installer nginx il suffit d'entrer les commandes suivantes :

sudo apt-get update
sudo apt-get install nginx

Enfin il faut lancer le serveur :

sudo systemctl start nginx

Vérification de l'installation

Pour vérifier que nginx est installé correctement nous allons essayer de nous connecter à notre serveur web.

Pour cela il nous faut une adresse à laquelle nous connecter. Nous allons donc devoir trouver l'adresse ip de notre serveur si nous ne la connaissons pas déjà.

Lien du cours pour trouver son ip locale

Finalement en ouvrant un navigateur et en tapant l'ip précédemment trouvée on tombe bien sur une page internet nous indiquant que nginx fonctionne correctement.

Page d'accueil nginx

Configuration de nginx

structure du dossier

Dans cette partie nous allons analyser la structure du dossier de configuration de nginx.

Rendez-vous dans /etc/nginx/

Dossier nginx

Nginx fonctionne avec ce principe :

  • On crée nos configurations de serveur dans le dossier sites-available/

  • On active ensuite ces configurations à l'aide d'un lien symbolique que l'on place dans le dossier sites-enabled/

L'intérêt est de pouvoir activer/désactiver des sites internet sans avoir à éditer les configurations ou les déplacer.

Fichier de configuration

Analysons la structure que doit avoir un fichier de configuration situé dans sites-available/

server {
       listen 80;                           #Port écouté par le serveur, 80 est le port par défaut
       server_name _;              #Nom de notre serveur
       
       location / {
               root /var/www/monsite;       #Emplacement de la racine du site internet
               index index.html;            #Fichier à ouvrir par défaut
       }
}

On pourra utiliser la commande nano avec les droits sudo afin d'éditer nos configurations.

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

Cette configuration est très minimale et on peut y ajouter énormément d'options en fonction de nos besoins. Dans le cadre de notre utilisation une configuration minimale sera suffisante.

La commande suivante permet de vérifier que la syntaxe de la configuration est valide :

sudo nginx -t

ComplémentPorts

La ligne listen 80; fait référence au port.

Les ports matériels correspondent aux ports physiques de l'ordinateur (port usb, port ethernet, etc..)

Au contraire les ports logiciel permettent aux logiciels et aux ordinateurs de discuter entre eux sur un réseau. Le port "le plus connu" est le port 80 qu'on alloue traditionnellement au HTTP. Si on souhaite mettre un site sur un port autre que le 80, il faudra que l'utilisateur spécifie le numéro du port dans l'adresse qu'il entre dans son navigateur. Il est donc conseillé de toujours mettre un site web sur le port 80.

« la notion de port logiciel permet, sur un ordinateur donné, de distinguer différents interlocuteurs. Ces interlocuteurs sont des programmes informatiques qui, selon les cas, écoutent ou émettent des informations sur ces ports. Un port est distingué par son numéro »

https://fr.wikipedia.org/wiki/Port_(logiciel)

Pour comprendre ce concept on peut imaginer que notre ordinateur est un immeuble. L'immeuble (ordinateur) possède une adresse postale (ip). Chaque habitant de l'immeuble possède la même adresse mais a un numéro de boite aux lettre (port) différent afin de pouvoir savoir qui communique avec qui et à qui redistribuer les informations.

Principe de fonctionnement des adresses IP

Une adresse IP (avec IP pour Internet Protocol) est un numéro d'identification qui est attribué de façon permanente ou provisoire à chaque appareil connecté à un réseau informatique utilisant l'Internet Protocol. L'adresse IP est à la base du système d'acheminement des messages sur Internet.

Il existe des adresses IP de version 4 (sur 32 bits, soit 4 octets) et de version 6 (sur 128 bits, soit 16 octets). La version 4 est actuellement la plus utilisée : elle est généralement représentée en notation décimale avec quatre nombres compris entre 0 et 255, séparés par des points. On aura donc des IPv4 qui ressemble à 172.31.128.1 et des IPv6 qui ressemblent à 2001:0db8:0000:85a3:0000:0000:ac1f:8001.

Les adresses IPv4 disponibles étant presque épuisées, les opérateurs incitent à la transition d'IPv4 vers IPv6.

Remarque

La plupart des adresses IP des serveurs peuvent être converties en un nom de domaine et inversement. Le nom de domaine est plus facilement lisible : pic.crzt.fr est le nom de domaine correspondant à 80.67.182.78.

Remarque

Chaque appareil connecté au réseau (pas seulement les ordinateurs) possède une adresse IP. D'ailleurs, si vous avez une carte wifi et une carte ethernet dans votre ordinateur, elles ont toutes deux une adresse différente étant donné qu'il s'agit de composant différent.

DéfinitionIP publique

Une adresse IP publique est une adresse dite "tournée vers l'extérieur". C'est l'adresse qui est visible par les autres appareils lorsque vous êtes connecté à internet et qui permet aux appareils réseaux de communiquer entre eux. Cette adresse est unique et sert d'identifiant.

DéfinitionIP privée

Une adresse IP privée est une adresse dite "tournée vers l'intérieur". Cette adresse permet de se connecter à un réseau local (donc pas sur internet). Elle n'est pas unique entre plusieurs réseaux locaux. Une IP privé se reconnait facilement par ses premiers chiffres : 10.x.x.x, 172.x.x.x et 192.168.x.x en général.

DéfinitionIP et serveur

Afin d'accéder à un serveur il faut donc au préalable connaître l'adresse IP publique de ce serveur (ou son nom de domaine). On pourra ainsi s'y connecter via le protocole SSH.

Trouver son adresse IP

MéthodeTrouver l'ip de sa machine

Vous pouvez tout d'abord vous referez au point de cour sur les adresses IP : Principe des adresses IP

Pour trouver l'adresse IP de votre machine il vous faut entrer la commande suivante : 

ip addr

La commande vous retourne la liste de tout les composants de votre ordinateur possédant une adresse IP

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 14:ab:c5:22:09:52 brd ff:ff:ff:ff:ff:ff
    inet 172.25.27.93/16 brd 172.25.255.255 scope global dynamic wlp2s0
       valid_lft 41339sec preferred_lft 41339sec
    inet6 fe80::528e:21d3:6917:839e/64 scope link 
       valid_lft forever preferred_lft forever

On trouve trois type de composants principaux :

  • lo : localhost

  • commençant par w : carte wifi

  • commençant par e : carte ethernet

Ici ce qui nous intéresse est la carte wifi de votre ordinateur.

inet correspond à l'adresse IPv4 et inet6 à l'IPv6. C'est l'adresse inet qui nous intéresse ici soit : 172.25.27.93

ComplémentTrouver l'ip sous Debian (avec colorisation)
ip -c -4 addr

L'adresse IP de votre machine est l'adresse colorée en violet. Cette commande est ici utilisé avec 2 options qui sont -c (coloriant le résultat) -4 (focalisant le résultat sur l'IPv4). Vous aurez tout de même 3 IPv4 qui s'afficheront, il faut toujours sélectionner celle précédée de "inet" dans la partie carte wifi ou carte ethernet.

Remarqueifconfig

La commande ifconfig est obsolète. Elle n'est plus maintenue et non prise en compte dans les mises à jours. Il lui faut donc préférer ip.

Types de lien

Lien physique

Un lien physique permet de donner plusieurs chemins à un même fichier, si l'on supprimer l'un des lien physique ou même la source, le fichier continu d'exister.

ln fichierSource lienPhysique
Lien symbolique

Le lien symbolique contrairement au lien physique pointe uniquement sur le nom du fichier source. Ainsi si l'on supprime la source, le fichier n'est plus accessible.

ln -s fichierSource lienSymbolique
https://fr.wikipedia.org/wiki/Port_(logiciel)

Définition Wikipédia de port logiciel

Liste des raccourcis clavier

Liste des fonctions de navigation et leurs raccourcis clavier correspondant :

  • Bloc Suivant : flèche droite, flèche bas, barre espace, page suivante, touche N
  • Bloc Précédent : flèche gauche, flèche haut, retour arrière, page précédente, touche P
  • Diapositive Suivante : touche T
  • Diapositive Précédente : touche S
  • Retour accueil : touche Début
  • Menu : touche M
  • Revenir à l'accueil : touche H
  • Fermer zoom : touche Échap.