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

introduction

Sur Ubuntu, par défaut, le serveur Web Nginx stocke ses documents dans + / var / www / html, qui se trouve généralement 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, nous allons vous montrer comment déplacer une racine de document Nginx vers un nouvel emplacement.

Conditions préalables

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

  • * Un serveur Ubuntu 16.04 avec un utilisateur non root avec les privilèges + sudo + *. Vous pouvez en savoir plus sur la configuration d’un utilisateur avec ces privilèges dans notre Initial Initial Server Setup with Ubuntu 16.04. guider.

  • * Un serveur Web Nginx *: Si vous n’en avez pas encore créé un, l’article détaillé, https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16 -04 [Comment installer Nginx sur Ubuntu 16.04], peut vous guider.

  • * Un nouvel emplacement pour la racine de votre document *: le nouvel emplacement de la racine du document est entièrement configurable en fonction de vos besoins. 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. Dans cet exemple, nous allons utiliser le répertoire + / mnt / volume-nyc1-01 +. Si vous utilisez Block Storage sur DigitalOcean, this guide vous montrera comment monter votre disque avant de continuer. avec ce tutoriel.

Étape 1 - Copier des fichiers vers le nouvel emplacement

Sur une nouvelle installation de Nginx, la racine du document se trouve dans + / var / www / html. Cependant, si vous travaillez avec un serveur existant, vous pouvez avoir une configuration très différente incluant plusieurs racines de document dans les directives de blocage de serveur correspondantes.

Vous pouvez rechercher l’emplacement de racines de document supplémentaires à l’aide de + grep +. Nous allons rechercher dans le répertoire + / etc / nginx / sites-enabled + pour limiter notre attention aux sites actifs. L’indicateur + -R + garantit que + grep + affichera à la fois la ligne contenant la directive + root + et le nom du fichier:

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

Le résultat ressemblera à la sortie ci-dessous, bien que le nom et le nombre de résultats soient probablement différents sur une installation existante:

Output/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;

Utilisez les commentaires de + grep + pour vous assurer de copier les fichiers souhaités et de mettre à jour les fichiers de configuration appropriés.

Maintenant que nous avons confirmé l’emplacement de la racine de notre document, nous allons copier les fichiers dans leur nouvel emplacement avec + rsync +. 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 pour vous permettre de suivre l’évolution.

sudo rsync -av /var/www/

Nous sommes maintenant prêts à mettre à jour la configuration.

É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, consultez https://www.digitalocean.com/community/tutorials/how-to-configure-the-nginx-web-server-on-a-virtual-private-private-server [Comment configurer le serveur Web Nginx sur un serveur privé virtuel].

Si vous travaillez avec une installation existante, vous devez modifier les fichiers que vous avez trouvés précédemment avec la commande + grep +. Dans notre exemple, nous allons examiner le fichier de configuration par défaut appelé + default +.

Ouvrez le fichier dans un éditeur:

sudo nano /etc/nginx/sites-enabled/default

Recherchez ensuite la ligne commençant par + root + et mettez-la à jour avec le nouvel emplacement.

/ etc / nginx / sites-enabled / default

. . .
      # include snippets/snakeoil.conf;
      root ;


      # Add index.php to the list if you are using PHP


      index index.html index.htm index.nginx-debian.html;
      server_name _;
. . .

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

Étape 3 - Redémarrage de Nginx

Une fois les modifications de configuration terminées, vous pouvez vous assurer que la syntaxe est correcte avec cette commande:

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 certain que tout est en ordre, n’oubliez pas de supprimer la copie originale des données.

sudo rm -Rf /var/www/html

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, étape importante dans la mise à l’échelle d’un site Web en fonction de l’évolution de ses besoins.

Si vous gérez un site Web occupé ou en croissance, vous voudrez peut-être apprendre https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-with-http-2-support- on-ubuntu-16-04 [comment configurer Nginx avec HTTP / 2] pour tirer parti de la grande vitesse de transfert du contenu. Vous pouvez également en savoir plus sur l’amélioration de l’expérience de production en comparant cette méthode. pour améliorer la configuration de votre serveur d’applications Web de production].