Nginx

Installation de Nginx

Installation 

sudo apt install nginx

Lancer le service

sudo service nginx start

Pour vérifier que Nginx fonctionne, entrer l’adresse IP du serveur dans un navigateur http://YOUR_IP_OR_DOMAIN/ et la page par défaut de Nginx doit être visible : 

image.png

Le dossier Nginx

Il est important de comprendre comment Nginx fonctionne une fois installé. 

Tout d'abord toute la configuration de Nginx se trouve à l'arborescence suivante : /etc/nginx

Dans cette arborescence il y a les dossiers de configuration des hosts : 

Protéger un site par mot de passe avec l'authentification de base

Prérequis

Tout d'abord pour utiliser la "basic authentification" il faut installer un package appartenant à Apache : 

sudo apt install apache2-utils

Il est nécessaire d'installer ce package car nous avons besoin de la commande htpasswd qui permet de créer un fichier .htpasswd qui contiendra tous les utilisateurs et leurs mot de passe. 

 

Création du fichier .htpasswd et d'un utilisateur
sudo htpasswd -c /path/to/file/.htpasswd <user>

# Exemple
sudo htpasswd -c /etc/nginx/.htpasswd marc
New password: 
Re-type new password: 
Adding password for user marc

L'option -c permet de créé le fichier-mots-de-passe. Si fichier-mots-de-passe existe déjà, il est réécrit et tronqué.

 


 

Rediriger un nom domaine sur un container

Se placer dans le répertoire : 

cd /etc/nginx/conf.d

Puis créer un fichier : <nom-de-mon-service>.conf

exemple : 

nano msn.conf

Puis insérer le contenu suivant en modifiant les variables suivantes : 

server {
    server_name msn.chiken.ovh;

    location / {
        proxy_pass http://localhost:3001; # Le port exposé par ton Docker
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    listen 80;
    listen [::]:80;
}

Puis redémarrer nginx : 

sudo systemctl restart nginx

Pour mettre le service en HTTPS il faut exécuter la commande suivante : 

 certbot --nginx

Puis entrer le numéro du service correspondant.