Comment déplacer une racine Web Nginx vers un nouvel emplacement sur Ubuntu 18.04

introduction

Sur Ubuntu, leNginx web server 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. Cependant, il peut parfois être utile de déplacer la racine du document vers un autre emplacement, tel qu’un système de fichiers monté séparé. Par exemple, si vous exploitez plusieurs sites Web à partir de la même instance Nginx, le fait de placer la racine du document de chaque site sur son propre volume vous permet de faire évoluer votre système en fonction des besoins d’un site ou d’un client spécifique.

Dans ce guide, vous allez déplacer une racine de document Nginx vers un nouvel emplacement.

Conditions préalables

Pour compléter ce guide, vous aurez besoin de:

Nous utiliserons le nom de domaineexample.com dans ce tutoriel, mais vous devez le remplacer par votre propre nom de domaine.

  • Un nouvel emplacement pour votre racine de document. Dans ce tutoriel, nous utiliserons le répertoire/mnt/volume-nyc3-01 pour notre nouvel emplacement. Si vous utilisez Block Storage sur DigitalOcean,this guide vous montrera comment créer et attacher votre volume. Votre nouvel emplacement racine de document est configurable en fonction de vos besoins, cependant. Si vous déplacez la racine de votre document vers un autre périphérique de stockage, vous devez sélectionner un emplacement situé sous le point de montage du périphérique.

[[step-1 -—- copying-files-to-the-new-location]] == Étape 1 - Copie de fichiers vers le nouvel emplacement

Sur une nouvelle installation de Nginx, la racine du document se trouve à/var/www/html. Cependant, en suivant les guides de prérequis, vous avez créé une nouvelle racine de document,/var/www/example.com/html. Vous pouvez également avoir des racines de document supplémentaires. Au cours de cette étape, nous établirons l’emplacement de nos racines de document et copierons les fichiers pertinents dans leur nouvel emplacement.

Vous pouvez rechercher l'emplacement des racines de vos documents en utilisantgrep. Faisons une recherche dans le répertoire/etc/nginx/sites-enabled pour limiter notre attention aux sites actifs. L'indicateur-R garantit quegrep affichera à la fois la ligne avec la directiveroot et le nom de fichier complet dans sa sortie:

grep -R "root" /etc/nginx/sites-enabled

Si vous avez suivi les didacticiels prérequis sur un nouveau serveur, le résultat sera le suivant:

Output/etc/nginx/sites-enabled/example.com:           root /var/www/example.com/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/example.com;

Si vous avez des configurations préexistantes, vos résultats peuvent différer de ceux présentés ici. Dans les deux cas, vous pouvez utiliser les commentaires degrep pour vous assurer que vous déplacez les fichiers souhaités et que vous mettez à jour les fichiers de configuration appropriés.

Maintenant que vous avez confirmé l'emplacement de la racine de votre document, vous pouvez copier les fichiers vers leur nouvel emplacement avecrsync. L'utilisation de l'indicateur-a préserve les autorisations et les autres propriétés du répertoire, tandis que-v fournit une sortie détaillée afin que vous puissiez suivre la progression de la synchronisation:

[.note] #Note: Assurez-vous qu'il n'y a pas de barre oblique à la fin du répertoire, qui peut être ajoutée si vous utilisez l'achèvement par tabulation. Lorsqu'il y a une barre oblique à la fin,rsync videra le contenu du répertoire dans le point de montage au lieu de le transférer dans un répertoire contenanthtml.
#

sudo rsync -av /var/www/example.com/html /mnt/volume-nyc3-01

Vous verrez une sortie comme celle-ci:

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.

[[step-2 -—- update-the-configuration-files]] == Étape 2 - Mise à jour des fichiers de configuration

Nginx utilise des fichiers de configuration globaux et spécifiques à un site. Pour en savoir plus sur la hiérarchie des fichiers de configuration, jetez un œil à“How To Configure The Nginx Web Server On a Virtual Private Server”. Nous allons modifier lesserver block file for our example.com project:/etc/nginx/sites-enabled/example.com.

[.note] #Note: N'oubliez pas que dans votre cas,example.com serayour_domain_name et que vous allez modifier les fichiers de bloc serveur qui ont été générés lorsque vous avez exécuté lesgrep commande à l'étape 1.
#

Commencez par ouvrir/etc/nginx/sites-enabled/example.com dans un éditeur:

sudo nano /etc/nginx/sites-enabled/example.com

Trouvez la ligne qui commence parroot et mettez-la à jour avec le nouvel emplacement racine. Dans notre cas, ce sera/mnt/volume-nyc3-01/html:

/etc/nginx/sites-enabled/example.com

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 de racine du document d'origine généré pargrep à l'étape 1, y compris dans les alias ou les réécritures. Vous voudrez également les mettre à jour pour refléter le nouvel emplacement racine du document.

Lorsque vous avez apporté toutes les modifications nécessaires, enregistrez et fermez le fichier.

[[step-3 -—- restarting-nginx]] == Étape 3 - Redémarrage de Nginx

Une fois les modifications de configuration terminées, vous pouvez redémarrer Nginx et tester les résultats.

Tout d'abord, assurez-vous que la syntaxe est correcte:

sudo nginx -t

Si tout est en ordre, il devrait retourner:

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, localisez et résolvez les problèmes.

Une fois le test réussi, redémarrez Nginx:

sudo systemctl restart nginx

Une fois le serveur redémarré, visitez les sites concerné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:

sudo rm -Rf /var/www/example.com/html

Vous avez maintenant déplacé avec succès la racine de votre document Nginx vers un nouvel emplacement.

Conclusion

Dans ce tutoriel, nous avons expliqué comment changer la racine du document Nginx vers un nouvel emplacement. Cela peut vous aider avec l'administration de base de serveur Web, comme la gestion efficace de plusieurs sites sur un seul serveur. Il vous permet également de tirer parti d'autres périphériques de stockage, tels que le stockage en bloc sur le réseau, ce qui peut s'avérer utile pour adapter un site Web à l'évolution de ses besoins.

Si vous gérez un site Web chargé ou en pleine croissance, vous voudrez peut-être apprendre àhow to set up Nginx with HTTP/2 pour tirer parti de sa vitesse de transfert élevée pour le contenu. Vous pouvez également en savoir plus sur l'amélioration de l'expérience de production dans cette comparaison defive ways to improve your production web application server setup.

Related