Aller au contenu

À la découverte de Nginx (3)


Ldfa

Messages recommandés

Nginx LogoVoici notre troisième article dans la série sur Nginx. Notre précédent article traitait de la configuration de base du serveur et de l’hébergement d’un site statique simple. Aujourd’hui nous allons aborder l’hébergement de plusieurs sites statiques sur une même machine. Pour les habitués du serveur Apache, c’est l’équivalent des hôtes virtuels (virtual hosts).

Héberger plusieurs sites statiques

Dans l’état actuel des choses, nous disposons d’un site statique http://www.slackbox.fr qui affiche la documentation de Slackware rangée dans l’arborescence /var/www/slackbox-site/html du serveur.

Nginx site statique

Notre objectif pour aujourd’hui consiste à héberger le site http://www.unixbox.fr qui affichera la documentation de FreeBSD rangée dans l’arborescence /var/www/unixbox-site/html. Là aussi, il faudra veiller à configurer les DNS au préalable.

$ cd /var/www/
$ sudo mkdir -pv unixbox-site/html
mkdir: created directory ‘unixbox-site’
mkdir: created directory ‘unixbox-site/html’
$ sudo chown -R microlinux:microlinux unixbox-site/
$ cd unixbox-site/html/
$ wget -r -p -np -nH --cut-dirs=4 \
  http://www.freebsd.org/doc/fr_FR.ISO8859-1/books/handbook/

Par ailleurs, la page par défaut de Nginx – c’est-à-dire le contenu de l’arborescence /usr/share/nginx/html – devra s’afficher à l’adresse http://sd-100246.dedibox.fr.

Nginx CentOS

Dans un premier temps, nous allons reconfigurer /etc/nginx/nginx.conf pour afficher cette page par défaut.

# /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
events {
  worker_connections 1024;
}
http {
 include mime.types; 
 server {
   listen 80 default_server;
   server_name sd-100246.dedibox.fr;
   root /usr/share/nginx/html;
   access_log /var/log/nginx/sd-100246.dedibox.fr-access.log;
   error_log  /var/log/nginx/sd-100246.dedibox.fr-error.log;
   index index.html;
   try_files $uri $uri/ =404;
 }
}

À ce stade, nous pouvons déjà tester la configuration de la page par défaut avant de la prendre en compte.

$ 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

En théorie, rien ne nous empêche d’ajouter deux stances server { } à /etc/nginx/nginx.conf pour configurer les hébergements www.slackbox.fr et www.unixbox.fr. En pratique, nous allons délocaliser ces configurations respectives dans une paire de fichiers situés dans /etc/nginx/conf.d. C’est un peu la même chose que ce que nous faisons avec Apache et les fichiers de configuration situés dans /etc/httpd/conf.d. On obtient ainsi une configuration plus lisible, surtout pour les machines hébergeant un nombre important de sites.

Nous devons d’abord indiquer à notre fichier de configuration principal qu’il faut tenir compte du contenu de /etc/nginx/conf.d.

# /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
events {
  worker_connections 1024;
}
http {
 include mime.types; 
 include conf.d/*.conf;
 server {
   listen 80 default_server;
   server_name sd-100246.dedibox.fr;
   root /usr/share/nginx/html;
   access_log /var/log/nginx/sd-100246.dedibox.fr-access.log;
   error_log  /var/log/nginx/sd-100246.dedibox.fr-error.log;
   index index.html;
   try_files $uri $uri/ =404;
 }
}

La configuration du site www.slackbox.fr sera rangée dans le fichier /etc/nginx/conf.d/www.slackbox.fr.conf.

# /etc/nginx/conf.d/www.slackbox.fr.conf
server {
  listen 80;
  server_name slackbox.fr www.slackbox.fr;
  root /var/www/slackbox-site/html;
  access_log /var/log/nginx/www.slackbox.fr-access.log;
  error_log  /var/log/nginx/www.slackbox.fr-error.log;
  index index.html;
  try_files $uri $uri/ =404;
}

De même, le fichier conf.d/www.unixbox.fr.conf contiendra la configuration du site www.unixbox.fr.

# /etc/nginx/conf.d/www.unixbox.fr.conf
server {
  listen 80;
  server_name unixbox.fr www.unixbox.fr;
  root /var/www/unixbox-site/html;
  access_log /var/log/nginx/www.unixbox.fr-access.log;
  error_log  /var/log/nginx/www.unixbox.fr-error.log;
  index index.html;
  try_files $uri $uri/ =404;
}

Tester et recharger la configuration.

$ 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

Tester successivement l’affichage des sites hébergés dans un navigateur web.

Nginx site statique

La suite au prochain numéro, où nous parlerons de l’hébergement de pages dynamiques.


La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

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.