Aller au contenu

À la découverte de Nginx (2)


Ldfa

Messages recommandés

Nginx LogoVoici notre deuxième article dans la série sur Nginx. Notre précédent article traitait de l’installation et de la mise en service du serveur web. Aujourd’hui nous allons aborder les bases de la configuration et l’hébergement d’un site statique simple.

Récupérer du contenu à héberger

Pour nous épargner la corvée de créer du contenu bidon, nous pouvons très bien récupérer un site web existant. On choisira la documentation de Slackware, qui vient sous forme d’une série de pages HTML statiques.

$ sudo mkdir -pv /var/www/slackbox-site/html
mkdir: created directory ‘/var/www’
mkdir: created directory ‘/var/www/slackbox-site’
mkdir: created directory ‘/var/www/slackbox-site/html’
$ sudo chown -R microlinux:microlinux /var/www/slackbox-site/
$ cd /var/www/slackbox-site/html/
$ wget -r -np -nH --cut-dirs=1 http://www.slackbook.org/html/

Configurer Nginx

Les fichiers de configuration de Nginx se trouvent dans /etc/nginx. Le paquet fourni par le dépôt tiers EPEL fournit deux fichiers nginx.conf et nginx.conf.default. Attention, ces fichiers ne sont pas identiques, comme on pourrait s’y attendre. Avant toute chose, nous allons donc sauvegarder la configuration existante.

$ cd /etc/nginx/
$ sudo mv nginx.conf nginx.conf.orig

Héberger un site statique

Pour héberger notre site statique, nous allons partir de la configuration suivante.

# /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
events {
  worker_connections 1024;
}
http {
 include mime.types;
 server {
   listen 80;
   server_name slackbox.fr www.slackbox.fr;
   root /var/www/slackbox-site/html;
   index index.html;
   try_files $uri $uri/ =404;
 }
}

La syntaxe de configuration de Nginx est un peu particulière et mérite quelques explications.

  • Nginx distingue les contextes et les directives. Dans le fichier ci-dessus, events, http ou server sont des contextes, alors que user, worker_processes ou try_files sont des directives.
  • Nginx n’est pas censé tourner en tant que root, mais en tant qu’utilisateur système nginx.
  • La directive worker_processes spécifie le nombre de workers qu’il faut créer au démarrage de Nginx. Pour les apercevoir clairement, invoquez systemctl status nginx. Idéalement, vous définirez autant de workers que vous disposez de coeurs CPU. La directive auto s’en charge automatiquement.
  • Dans le contexte events, la directive worker_connections spécifie le maximum de connexions simultanées au serveur. Sous Linux, la commande ulimit -n vous affiche le maximum de fichiers qui peuvent être ouverts simultanément. Utilisez cette valeur.
  • Notez que worker_processes x worker_connections = nombre total de connexions simultanées au serveur. Sur mon serveur Dedibox, la commande nproc me retourne la valeur 2, et ulimit -n affiche 1024. J’obtiens donc un total de 2 x 1024 = 2048 connexions simultanées possibles.
  • Dans le contexte http, la directive include mime.types charge le fichier /etc/nginx/mime.types qui permet la gestion correcte des différents types de fichiers comme les feuilles de style CSS, les images JPG et PNG, et beaucoup d’autres types de fichiers.
  • La directive listen 80 dans le contexte server spécifie le port d’écoute de Nginx. Elle n’est pas vraiment nécessaire, mais c’est considéré comme une bonne pratique de la spécifier quand-même.
  • Notre site sera joignable sous l’adresse http://slackbox.fr et http://www.slackbox.fr. Bien évidemment, cela nécessite une configuration correcte des DNS en amont.
  • La directive root indique la racine de notre hébergement dans le système de fichiers local.
  • La directive index définit le ou les fichiers qui seront utilisés comme index si la requête vise un répertoire.
  • La directive try_files essaie à tour de rôle d’ouvrir les fichiers spécifiés en argument. En l’occurrence, la variable $uri représente la requête, $uri/ ajoute un / à la requête, et si ces deux tentatives échouent, on est redirigé vers la page d’erreur 404.
  • Note pour les chipoteurs : la directive try_files peut s’utiliser aussi bien dans un contexte server que dans un contexte location.

Avant de prendre en compte la nouvelle configuration, ce n’est pas une mauvaise idée de la tester.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ sudo systemctl reload nginx

Il ne reste plus qu’à afficher le site dans un navigateur web.

Nginx site statique

La suite au prochain numéro, où nous verrons comment héberger plusieurs sites sur le même serveur.

Afficher l’article complet

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.