Comment installer Nginx sur Ubuntu 16.04

De Get Docs
Aller à :navigation, rechercher

Introduction

Nginx est l'un des serveurs Web les plus populaires au monde et est responsable de l'hébergement de certains des sites les plus importants et les plus fréquentés sur Internet. Il est plus respectueux des ressources qu'Apache dans la plupart des cas et peut être utilisé comme serveur Web ou proxy inverse.

Dans ce guide, nous expliquerons comment installer Nginx sur votre serveur Ubuntu 16.04.

Conditions préalables

Avant de commencer ce guide, vous devez avoir un utilisateur régulier non root avec des privilèges sudo configurés sur votre serveur. Vous pouvez apprendre à configurer un compte d'utilisateur standard en suivant notre guide de configuration initiale du serveur pour Ubuntu 16.04.

Lorsque vous avez un compte disponible, connectez-vous en tant qu'utilisateur non root pour commencer.

Étape 1 : Installer Nginx

Nginx est disponible dans les dépôts par défaut d'Ubuntu, donc l'installation est plutôt simple.

Étant donné qu'il s'agit de notre première interaction avec le système de conditionnement apt dans cette session, nous mettrons à jour notre index de packages local afin d'avoir accès aux listes de packages les plus récentes. Ensuite, nous pouvons installer nginx :

sudo apt-get update
sudo apt-get install nginx

Après avoir accepté la procédure, apt-get installera Nginx et toutes les dépendances requises sur votre serveur.

Étape 2 : Ajustez le pare-feu

Avant de pouvoir tester Nginx, nous devons reconfigurer notre logiciel de pare-feu pour autoriser l'accès au service. Nginx s'enregistre en tant que service auprès de ufw, notre pare-feu, lors de l'installation. Cela facilite l'accès à Nginx.

Nous pouvons lister les configurations d'applications avec lesquelles ufw sait travailler en tapant :

sudo ufw app list

Vous devriez obtenir une liste des profils d'application :

OutputAvailable applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

Comme vous pouvez le voir, trois profils sont disponibles pour Nginx :

  • Nginx Full : ce profil ouvre à la fois le port 80 (trafic Web normal non crypté) et le port 443 (trafic crypté TLS/SSL)
  • Nginx HTTP : ce profil ouvre uniquement le port 80 (trafic Web normal non chiffré)
  • Nginx HTTPS : ce profil ouvre uniquement le port 443 (trafic crypté TLS/SSL)

Il est recommandé d'activer le profil le plus restrictif qui autorisera toujours le trafic que vous avez configuré. Comme nous n'avons pas encore configuré SSL pour notre serveur, dans ce guide, nous n'aurons qu'à autoriser le trafic sur le port 80.

Vous pouvez l'activer en tapant :

sudo ufw allow 'Nginx HTTP'

Vous pouvez vérifier le changement en tapant :

sudo ufw status

Vous devriez voir le trafic HTTP autorisé dans la sortie affichée :

OutputStatus: active

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

Étape 3 : Vérifiez votre serveur Web

À la fin du processus d'installation, Ubuntu 16.04 démarre Nginx. Le serveur Web devrait déjà être opérationnel.

Nous pouvons vérifier avec le système d'initialisation systemd pour nous assurer que le service est en cours d'exécution en tapant :

systemctl status nginx
Output● 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 2016-04-18 16:14:00 EDT; 4min 2s ago
 Main PID: 12857 (nginx)
   CGroup: /system.slice/nginx.service
           ├─12857 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
           └─12858 nginx: worker process

Comme vous pouvez le voir ci-dessus, le service semble avoir démarré avec succès. Cependant, la meilleure façon de tester cela est de demander une page à Nginx.

Vous pouvez accéder à la page d'accueil par défaut de Nginx pour confirmer que le logiciel fonctionne correctement. Vous pouvez y accéder via le nom de domaine ou l'adresse IP de votre serveur.

Si vous n'avez pas de nom de domaine configuré pour votre serveur, vous pouvez apprendre comment configurer un domaine avec DigitalOcean ici.

Si vous ne souhaitez pas configurer de nom de domaine pour votre serveur, vous pouvez utiliser l'adresse IP publique de votre serveur. Si vous ne connaissez pas l'adresse IP de votre serveur, vous pouvez l'obtenir de différentes manières à partir de la ligne de commande.

Essayez de taper ceci à l'invite de commande de votre serveur :

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Vous récupérerez quelques lignes. Vous pouvez essayer chacun dans votre navigateur Web pour voir s'ils fonctionnent.

Une alternative consiste à taper ceci, ce qui devrait vous donner votre adresse IP publique telle qu'elle est vue depuis un autre emplacement sur Internet :

sudo apt-get install curl
curl -4 icanhazip.com

Lorsque vous avez l'adresse IP ou le domaine de votre serveur, saisissez-le dans la barre d'adresse de votre navigateur :

http://server_domain_or_IP

Vous devriez voir la page de destination par défaut de Nginx, qui devrait ressembler à ceci :

Cette page est simplement incluse avec Nginx pour vous montrer que le serveur fonctionne correctement.

Étape 4 : Gérer le processus Nginx

Maintenant que votre serveur Web est opérationnel, nous pouvons passer en revue certaines commandes de gestion de base.

Pour arrêter votre serveur Web, vous pouvez taper :

sudo systemctl stop nginx

Pour démarrer le serveur Web lorsqu'il est arrêté, tapez :

sudo systemctl start nginx

Pour arrêter puis redémarrer le service, tapez :

sudo systemctl restart nginx

Si vous apportez simplement des modifications de configuration, Nginx peut souvent recharger sans interrompre les connexions. Pour ce faire, cette commande peut être utilisée :

sudo systemctl reload nginx

Par défaut, Nginx est configuré pour démarrer automatiquement au démarrage du serveur. Si ce n'est pas ce que vous voulez, vous pouvez désactiver ce comportement en tapant :

sudo systemctl disable nginx

Pour réactiver le service afin qu'il démarre au démarrage, vous pouvez taper :

sudo systemctl enable nginx

Étape 5 : Familiarisez-vous avec les fichiers et répertoires Nginx importants

Maintenant que vous savez comment gérer le service lui-même, vous devriez prendre quelques minutes pour vous familiariser avec quelques répertoires et fichiers importants.

Teneur

  • /var/www/html : le contenu Web réel, qui par défaut se compose uniquement de la page Nginx par défaut que vous avez vue précédemment, est diffusé à partir du répertoire /var/www/html. Cela peut être modifié en modifiant les fichiers de configuration Nginx.

Configuration du serveur

  • /etc/nginx : le répertoire de configuration de Nginx. Tous les fichiers de configuration Nginx résident ici.
  • /etc/nginx/nginx.conf : Le fichier de configuration principal de Nginx. Cela peut être modifié pour apporter des modifications à la configuration globale de Nginx.
  • /etc/nginx/sites-available/ : Le répertoire dans lequel les "blocs de serveur" par site peuvent être stockés. Nginx n'utilisera pas les fichiers de configuration trouvés dans ce répertoire à moins qu'ils ne soient liés au répertoire sites-enabled (voir ci-dessous). En règle générale, toute la configuration du bloc de serveur est effectuée dans ce répertoire, puis activée en établissant un lien vers l'autre répertoire.
  • /etc/nginx/sites-enabled/ : le répertoire dans lequel les « blocs de serveur » activés par site sont stockés. Généralement, ceux-ci sont créés en créant un lien vers les fichiers de configuration trouvés dans le répertoire sites-available.
  • /etc/nginx/snippets : ce répertoire contient des fragments de configuration qui peuvent être inclus ailleurs dans la configuration Nginx. Les segments de configuration potentiellement reproductibles sont de bons candidats pour la refactorisation en extraits.

Journaux du serveur

  • /var/log/nginx/access.log : chaque demande adressée à votre serveur Web est enregistrée dans ce fichier journal, sauf si Nginx est configuré pour faire autrement.
  • /var/log/nginx/error.log : toutes les erreurs Nginx seront enregistrées dans ce journal.

Conclusion

Maintenant que votre serveur Web est installé, vous disposez de nombreuses options pour le type de contenu à diffuser et les technologies que vous souhaitez utiliser pour créer une expérience plus riche.

Apprenez comment utiliser les blocs de serveur Nginx ici. Si vous souhaitez créer une pile d'applications plus complète, consultez cet article sur comment configurer une pile LEMP sur Ubuntu 16.04.