Cómo mover una raíz web de Nginx a una nueva ubicación en Ubuntu 20.04

Introducción
En Ubuntu, el servidor web Nginx almacena sus documentos en /var/www/html
, que normalmente se encuentra en el sistema de archivos raíz con el resto del sistema operativo. Sin embargo, a veces resulta útil mover la raíz de documentos a otra ubicación, como un sistema de archivos montado por separado. Por ejemplo, si ofrece varios sitios web desde la misma instancia de Nginx, colocar la raíz de documentos de cada sitio en su propio volumen le permite escalar en respuesta a las necesidades de un sitio o cliente específico.
En esta guía, moverá una raíz de documento Nginx a una nueva ubicación.
Prerrequisitos
Para completar esta guía, necesitarás:
- Un servidor Ubuntu 20.04 y un usuario no root con privilegios sudo. Puede obtener más información sobre cómo configurar un usuario con estos privilegios en nuestra guía Configuración inicial del servidor con Ubuntu 20.04 .
- Nginx instalado, siguiendo Cómo instalar Nginx en Ubuntu 20.04 .
- Un certificado TLS/SSL configurado para su servidor. Tiene tres opciones:
- Puede obtener un certificado gratuito de Let’s Encrypt siguiendo Cómo proteger Nginx con Let’s Encrypt en Ubuntu 20.04 .
- También puede generar y configurar un certificado autofirmado siguiendo Cómo crear un certificado SSL autofirmado para Nginx en Ubuntu 20.04 .
- Puede comprar uno de otro proveedor y configurar Nginx para usarlo siguiendo los Pasos 3 y 4 de Cómo crear un certificado SSL autofirmado para Nginx en Ubuntu 20.04 .
En este tutorial utilizaremos el nombre de dominio your_domain , pero deberás sustituirlo por tu propio nombre de dominio.
- Una nueva ubicación para la raíz de su documento. En este tutorial, utilizaremos el
/mnt/volume-nyc3-01
directorio para nuestra nueva ubicación. Si está utilizando Block Storage en DigitalOcean, esta guía le mostrará cómo crear y adjuntar su volumen. Sin embargo, la nueva ubicación de la raíz de su documento se puede configurar según sus necesidades. Si está moviendo la raíz de su documento a un dispositivo de almacenamiento diferente, deberá seleccionar una ubicación debajo del punto de montaje del dispositivo.
Paso 1: Copiar archivos a la nueva ubicación
En una nueva instalación de Nginx, la raíz del documento se encuentra en /var/www/html
. Sin embargo, al seguir las guías de requisitos previos, creó una nueva raíz del documento, . También puede tener raíces de documentos adicionales. En este paso, estableceremos la ubicación de nuestras raíces de documentos y copiaremos los archivos relevantes a su nueva ubicación./var/www/your_domain/html
Puede buscar la ubicación de las raíces de sus documentos utilizando grep
. Busquemos en el /etc/nginx/sites-enabled
directorio para limitar nuestro enfoque a los sitios activos. El -R
indicador garantiza que grep
se imprimirán tanto la línea con la root
directiva como el nombre de archivo completo en su salida:
- grep -R "root" /etc/nginx/sites-enabled
Si siguió los tutoriales de requisitos previos en un servidor nuevo, el resultado se verá así:
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 ya tiene configuraciones existentes, los resultados pueden diferir de los que se muestran aquí. En cualquier caso, puede utilizar los comentarios de grep
para asegurarse de mover los archivos deseados y actualizar los archivos de configuración adecuados.
Ahora que ha confirmado la ubicación de la raíz de su documento, puede copiar los archivos a su nueva ubicación con rsync
. El uso de la -a
bandera conserva los permisos y otras propiedades del directorio, mientras que -v
proporciona una salida detallada para que pueda seguir el progreso de la sincronización:
Nota: Asegúrese de que no haya una barra diagonal al final del directorio, ya que puede agregarse si utiliza la función de completar con tabulaciones. Cuando hay una barra diagonal al final, rsync
se volcará el contenido del directorio en el punto de montaje en lugar de transferirlo a un html
directorio que lo contenga.
- sudo rsync -av /var/www/your_domain/html /mnt/volume-nyc3-01
Verá un resultado como el siguiente:
Outputsending incremental file listcreated directory /mnt/volume-nyc3-01html/html/index.htmlsent 318 bytes received 39 bytes 714.00 bytes/sectotal size is 176 speedup is 0.49
Con nuestros archivos en su lugar, pasemos a modificar nuestra configuración de Nginx para reflejar estos cambios.
Paso 2: Actualización de los archivos de configuración
Nginx utiliza archivos de configuración globales y específicos del sitio. Para obtener información sobre la jerarquía de los archivos de configuración, consulte “Cómo configurar el servidor web Nginx en un servidor privado virtual” . Modificaremos el archivo de bloque del servidor para nuestro your_domain
proyecto : ./etc/nginx/sites-enabled/your_domain
Nota: Recuerde reemplazar your_domain
con su nombre de dominio y recuerde que estará modificando los archivos de bloque del servidor que se generaron cuando ejecutó el grep
comando en el Paso 1.
Comience abriendo en un editor:/etc/nginx/sites-enabled/your_domain
- sudo nano /etc/nginx/sites-enabled/your_domain
Busque la línea que comienza con root
y actualícela con la nueva ubicación de la raíz. En nuestro caso, será /mnt/volume-nyc3-01/html
:
/etc/nginx/sites-enabled/su_dominio
server { root /mnt/volume-nyc3-01/html; index index.html index.htm index.nginx-debian.html; . . .}. . .
Esté atento a cualquier otro lugar en el que vea la ruta raíz del documento original generada grep
en el Paso 1, incluidos alias o reescrituras. También deberá actualizarlos para reflejar la nueva ubicación de la raíz del documento.
Cuando haya realizado todos los cambios necesarios, guarde y cierre el archivo.
Paso 3: Reiniciar Nginx
Una vez que haya terminado de realizar los cambios de configuración, puede reiniciar Nginx y probar los resultados.
Primero, asegúrese de que la sintaxis sea correcta:
- sudo nginx -t
Si todo está en orden debería devolver:
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful
Si la prueba falla, localice y solucione los problemas.
Una vez que pase la prueba, reinicie Nginx:
- sudo systemctl restart nginx
Cuando el servidor se haya reiniciado, visita los sitios afectados y asegúrate de que funcionen como se espera. Una vez que estés seguro de que todo está en orden, no olvides eliminar la copia original de los datos:
- sudo rm -Rf /var/www/your_domain/html
Ahora ha movido con éxito la raíz del documento Nginx a una nueva ubicación.
Conclusión
En este tutorial, explicamos cómo cambiar la raíz de documentos de Nginx a una nueva ubicación. Esto puede ayudarte con la administración básica del servidor web, como la gestión eficaz de varios sitios en un solo servidor. También te permite aprovechar dispositivos de almacenamiento alternativos, como el almacenamiento en bloque de red, que puede resultar útil para escalar un sitio web a medida que cambian sus necesidades.
Si administra un sitio web con mucho tráfico o en crecimiento, quizás le interese aprender cómo configurar Nginx con HTTP/2 para aprovechar su alta velocidad de transferencia de contenido.
Deja una respuesta