Avec Apache, Nginx est l’un des serveurs web les plus populaires et est capable de gérer le trafic soutenu de sites très visités. Il a aussi l’avantage de gérer le reverse proxy et est facile à manager. Ce tutoriel explique comment installer un serveur web Nginx sur distribution Ubuntu avec explication des fichiers de configuration et les services à démarrer. Un serveur Linux en ligne de commande ou avec interface graphique, toutes les déclinaisons Ubuntu sont compatibles (Kubuntu, Xubuntu…).

Une méthode valable pour Ubuntu 16 LTS (16.04) et Ubuntu 18 LTS (18.04). Ces versions de la distribution proposent nginx dans les repositories par défaut donc l’installation est grandement facilitée.

 

Installer nginx sur Linux Ubuntu

1. Mettre à jour les paquets Ubuntu :

sudo apt-get update

2. Installer le serveur nginix :

sudo apt-get install nginx

Cette commande s’occupe d’installer le serveur Nginx ainsi que les dépendances associées.

 

Configurer le firewall Ubuntu pour Nginx

1. Afficher la configuration actuelle :

sudo ufw app list

2. Ce qui doit afficher :

Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

Ce qui signifie :

  • Nginx Full : ce profil ouvre les ports 80 (http) et 443 (https)
  • Nginx HTTP : ce profil n’ouvre que le port 80 pour du http standard, non encrypté
  • Nginx HTTPS : ce profil ouvre le port 443 pour un trafic encrypté en TLS / SSL

3. Il est recommandé d’activer le profil le plus restrictif, soit le Nginx HTTPS dans le cas où un certificat SSL sera utilisé. Sinon, HTTP ou Full selon la configuration souhaitée. Dans cet exemple, est activé Nginx HTTP pour faire des tests sans certificat.

sudo ufw allow 'Nginx HTTP'

4. Vérifier la modification :

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Nginx HTTP                 ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

 

Service nginx

Comme tout service Ubuntu, nginx démarre et s’arrête avec systemctl :

1. Vérifier que nginx est démarré :

systemctl status nginx

2. Ce qui renvoie :

nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2019-02-11 12:34:40 EDT; 4min 2s ago

 

Se connecter au serveur nginx

1Depuis un autre poste du réseau ou une machine virtuelle, ouvrir un navigateur internet et se connecter sur l’adresse IP ou le nom DNS du serveur nginx.

http://adresseip

welcome to nginx

 

Commandes pour gérer nginx

Démarrer nginx :

sudo systemctl stop nginx

Arrêter nginx :

sudo systemctl start nginx

Redémarrer le serveur nginx :

sudo systemctl restart nginx

Recharger nginx après une modification de la configuration :

sudo systemctl reload nginx

Désactiver le démarrage automatique de nginx avec le système (activé par défaut) :

sudo systemctl disable nginx

Activer le démarrage automatique du service nginx Ubuntu :

sudo systemctl enable nginx

 

Configuration d’un serveur Nginx

Fichier principal de configuration : /etc/nginx/nginx.conf

Répertoire des sites : /etc/nginx/sites-available/

Répertoire des sites activés (créer des symlinks ln -s vers /sites-available) : /etc/nginx/sites-enabled/

Dossier des snippets Nginx : /etc/nginx/snippets

 

Logs Nginx

/var/log/nginx/access.log : historique de toutes les actions et requêtes du serveur web nginx

/var/log/nginx/error.log : uniquement les erreurs nginx