Nginx prononcé "engine x" est un serveur HTTP et proxy inverse open source et hautes performances chargé de gérer la charge de certains des plus grands sites sur Internet. Il peut être utilisé comme serveur Web autonome, équilibreur de charge, cache de contenu et proxy inverse pour les serveurs HTTP et non HTTP.
Comparé à Apache, Nginx peut gérer un grand nombre de connexions simultanées et a une empreinte mémoire plus petite par connexion.
Ce tutoriel décrit comment installer et gérer Nginx sur Ubuntu 20.04.
Prérequis #
Avant de continuer, assurez-vous que vous êtes connecté en tant qu'utilisateur avec des privilèges sudo et qu'Apache ou tout autre processus ne s'exécute pas sur le port 80 ou 443.
Installation de Nginx #
Nginx est disponible dans les référentiels Ubuntu par défaut. Pour l'installer, exécutez les commandes suivantes :
sudo apt update
sudo apt install nginx
Une fois l'installation terminée, le service Nginx démarrera automatiquement. Vous pouvez le vérifier en exécutant :
sudo systemctl status nginx
La sortie ressemblera à ceci :
● 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 Sat 2020-05-02 20:25:43 UTC; 13s ago
...
C'est ça. Nginx a été installé sur votre machine Ubuntu. Vous pouvez gérer le service Nginx de la même manière que n'importe quelle autre unité systemd.
Configuration du pare-feu #
Maintenant que Nginx est installé et exécuté sur votre serveur, vous devez vous assurer que votre pare-feu est configuré pour autoriser le trafic sur HTTP (80
) et HTTPS (443
) ports. En supposant que vous utilisez UFW
, vous pouvez le faire en activant le profil "Nginx Full" qui inclut des règles pour les deux ports :
sudo ufw allow 'Nginx Full'
Pour vérifier le type de statut :
sudo ufw status
Le résultat ressemblera à ceci :
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
Nginx Full ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
Tester l'installation #
Pour tester votre nouvelle installation Nginx, ouvrez http://YOUR_IP
dans le navigateur de votre choix, et vous devriez voir la page d'accueil par défaut de Nginx comme indiqué sur l'image ci-dessous :
Structure et meilleures pratiques du fichier de configuration Nginx #
- Tous les fichiers de configuration Nginx se trouvent dans le répertoire
/etc/nginx
répertoire. - Le fichier de configuration principal de Nginx est
/etc/nginx/nginx.conf
. - Pour faciliter la maintenance de la configuration Nginx, il est recommandé de créer un fichier de configuration distinct pour chaque domaine. Vous pouvez avoir autant de fichiers de bloc de serveur que vous le souhaitez.
- Les fichiers de blocage du serveur Nginx sont stockés dans
/etc/nginx/sites-available
annuaire. Les fichiers de configuration trouvés dans ce répertoire ne sont pas utilisés par Nginx sauf s'ils sont liés au/etc/nginx/sites-enabled
répertoire. - Pour activer un bloc serveur, vous devez créer un lien symbolique (un pointeur) à partir du fichier de configuration sites dans un
sites-available
répertoire vers lesites-enabled
répertoire. - Il est recommandé de suivre la convention de dénomination standard. Par exemple, si votre nom de domaine est
mydomain.com
alors votre fichier de configuration doit être nommé/etc/nginx/sites-available/mydomain.com.conf
- Le
/etc/nginx/snippets
Le répertoire contient des extraits de configuration qui peuvent être inclus dans les fichiers de bloc du serveur. Si vous utilisez des segments de configuration reproductibles, vous pouvez refactoriser ces segments en extraits et inclure le fichier d'extraits dans les blocs de serveur. - Fichiers journaux Nginx (
access.log
eterror.log
) sont situés dans le/var/log/nginx
annuaire. Il est recommandé d'avoir unaccess
différent eterror
fichiers journaux pour chaque bloc de serveur. - Vous pouvez définir le répertoire racine des documents de votre domaine à l'emplacement de votre choix. Les emplacements les plus courants pour la racine Web incluent :
/home/<user_name>/<site_name>
/var/www/<site_name>
/var/www/html/<site_name>
/opt/<site_name>