Introduction
Sur Ubuntu, le serveur web Nginx stocke ses documents dans /var/www/html
, qui est généralement situé sur le système de fichiers racine avec le reste du système d’exploitation. Parfois, cependant, il est utile de déplacer la racine des documents vers un autre emplacement, tel qu’un système de fichiers monté séparément. Par exemple, si vous servez plusieurs sites web à partir de la même instance Nginx, mettre la racine des documents de chaque site sur son propre volume vous permet de dimensionner en fonction des besoins d’un site ou client spécifique.
Dans ce guide, vous déplacerez la racine des documents de Nginx vers un nouvel emplacement.
Prérequis
Pour mener à bien ce guide, vous aurez besoin de :
- Un serveur Ubuntu 22.04 et un utilisateur non root avec des privilèges sudo. Vous pouvez en savoir plus sur la manière de configurer un utilisateur avec ces privilèges dans notre guide Configuration initiale du serveur avec Ubuntu 22.04.
- Nginx est installé, en suivant Comment installer Nginx sur Ubuntu 22.04.
- A TLS/SSL certificate configured for your server. You have three options:
- Vous pouvez obtenir un certificat gratuit auprès de Let’s Encrypt en suivant Comment sécuriser Nginx avec Let’s Encrypt sur Ubuntu 22.04.
- Vous pouvez également générer et configurer un certificat auto-signé en suivant Comment créer un certificat SSL auto-signé pour Nginx sur Ubuntu 22.04.
- Vous pouvez en acheter un auprès d’un autre fournisseur et configurer Nginx pour l’utiliser en suivant les étapes 3 et 4 de Comment créer un certificat SSL auto-signé pour Nginx sur Ubuntu 22.04.
Nous utiliserons le nom de domaine your_domain dans ce tutoriel, mais vous devriez le remplacer par votre propre nom de domaine.
- A new location for your document root. In this tutorial, we will use the
/mnt/volume-nyc3-01
directory for our new location. If you are using Block Storage on DigitalOcean, this guide will show you how to create and attach your volume. Your new document root location is configurable based on your needs, however. If you are moving your document root to a different storage device, you will want to select a location under the device’s mount point.
Étape 1 — Copie des fichiers vers le nouvel emplacement
Lors d’une installation fraîche de Nginx, le répertoire des documents se trouve à /var/www/html
. Cependant, en suivant les guides préalables, vous avez créé un nouveau répertoire de documents, /var/www/your_domain/html
. Vous pouvez également avoir d’autres répertoires de documents. Dans cette étape, nous établirons l’emplacement de nos répertoires de documents et copierons les fichiers pertinents vers leur nouvel emplacement.
Vous pouvez rechercher l’emplacement de vos répertoires de documents en utilisant grep
. Recherchons dans le répertoire /etc/nginx/sites-enabled
pour limiter notre focus aux sites actifs. Le drapeau -R
assure que grep
affichera à la fois la ligne avec la directive root
et le nom complet du fichier dans sa sortie:
Si vous avez suivi les tutoriels préalables sur un serveur frais, le résultat ressemblera à ceci:
Output/etc/nginx/sites-enabled/your_domain: root /var/www/your_domain/html;
/etc/nginx/sites-enabled/default: root /var/www/html;
/etc/nginx/sites-enabled/default: # deny access to .htaccess files, if Apache's document root
/etc/nginx/sites-enabled/default:# root /var/www/your_domain;
Si vous avez des configurations préexistantes, vos résultats peuvent différer de ce qui est affiché ici. Dans tous les cas, vous pouvez utiliser les retours de grep
pour vous assurer que vous déplacez les fichiers souhaités et mettez à jour les fichiers de configuration appropriés.
Maintenant que vous avez confirmé l’emplacement de votre répertoire de documents, vous pouvez copier les fichiers vers leur nouvel emplacement avec rsync
. Utilisez le drapeau -a
pour préserver les autorisations et autres propriétés du répertoire, tandis que -v
fournit une sortie détaillée pour suivre le progrès de la synchronisation:
Remarque : Assurez-vous qu’il n’y a pas de barre oblique finale sur le répertoire, qui peut être ajoutée si vous utilisez la complétion tabulaire. Lorsqu’il y a une barre oblique finale, rsync
va déverser le contenu du répertoire dans le point de montage au lieu de le transférer dans un répertoire html
contenant.
Vous verrez une sortie comme suit:
Outputsending incremental file list
created directory /mnt/volume-nyc3-01
html/
html/index.html
sent 318 bytes received 39 bytes 714.00 bytes/sec
total size is 176 speedup is 0.49
Avec nos fichiers en place, passons à la modification de notre configuration Nginx pour refléter ces changements.
Étape 2 — Mise à jour des fichiers de configuration
Nginx utilise à la fois des fichiers de configuration globaux et spécifiques au site. Nous allons modifier le fichier du bloc serveur pour notre projet votre_domaine
: /etc/nginx/sites-enabled/votre_domaine
.
Remarque : N’oubliez pas de remplacer votre_domaine
par votre nom de domaine, et souvenez-vous que vous allez modifier les fichiers de bloc serveur qui ont été générés lorsque vous avez exécuté la commande grep
à l’étape 1.
Commencez par ouvrir /etc/nginx/sites-enabled/votre_domaine
dans un éditeur :
Recherchez la ligne qui commence par root
et mettez-la à jour avec le nouvel emplacement racine. Dans notre cas, il s’agira de /mnt/volume-nyc3-01/html
:
server {
root /mnt/volume-nyc3-01/html;
index index.html index.htm index.nginx-debian.html;
. . .
}
. . .
Gardez un œil sur tous les autres endroits où vous voyez le chemin racine du document original renvoyé par grep
à l’étape 1, y compris dans les alias ou les réécritures. Vous voudrez également mettre à jour ceux-ci pour refléter la nouvelle localisation du document racine.
Une fois que vous avez apporté toutes les modifications nécessaires, enregistrez et fermez le fichier.
Étape 3 — Redémarrage de Nginx
Une fois que vous avez terminé de modifier la configuration, vous pouvez redémarrer Nginx et tester les résultats.
Tout d’abord, assurez-vous que la syntaxe est correcte :
Si tout est en ordre, cela devrait renvoyer :
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Si le test échoue, identifiez et corrigez les problèmes.
Une fois le test réussi, redémarrez Nginx :
Une fois le serveur redémarré, visitez vos sites affectés et assurez-vous qu’ils fonctionnent comme prévu. Une fois que vous êtes sûr que tout est en ordre, n’oubliez pas de supprimer la copie originale des données :
Vous avez maintenant réussi à déplacer avec succès le document racine de Nginx vers un nouvel emplacement.
Conclusion
Dans ce tutoriel, nous avons couvert comment changer la racine des documents Nginx vers un nouvel emplacement. Cela peut vous aider dans l’administration de base du serveur web, comme la gestion efficace de plusieurs sites sur un seul serveur. Cela vous permet également de tirer parti de périphériques de stockage alternatifs tels que le stockage en bloc réseau, ce qui peut être utile pour mettre à l’échelle un site web à mesure que ses besoins évoluent.
Si vous gérez un site web occupé ou en croissance, vous pourriez être intéressé par l’apprentissage comment configurer Nginx avec HTTP/2 pour profiter de sa vitesse de transfert élevée pour le contenu.