Introducción
En Ubuntu, el servidor web Nginx almacena sus documentos en /var/www/html
, que generalmente se encuentra en el sistema de archivos raíz junto con el resto del sistema operativo. Sin embargo, a veces es útil mover la raíz del documento a otra ubicación, como un sistema de archivos montado separado. Por ejemplo, si sirve varios sitios web desde la misma instancia de Nginx, colocar la raíz del documento 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á la raíz del documento de Nginx a una nueva ubicación.
Requisitos previos
Para completar esta guía, necesitará:
- Un servidor Ubuntu 22.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 22.04.
- Nginx está instalado, siguiendo Cómo instalar Nginx en Ubuntu 22.04.
- A TLS/SSL certificate configured for your server. You have three options:
- Puede obtener un certificado gratuito de Let’s Encrypt siguiendo Cómo asegurar Nginx con Let’s Encrypt en Ubuntu 22.04.
- También puede generar y configurar un certificado autofirmado siguiendo Cómo crear un certificado SSL autofirmado para Nginx en Ubuntu 22.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 22.04.
Utilizaremos el nombre de dominio your_domain en este tutorial, pero debe sustituirlo por su propio nombre de dominio.
- 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.
Paso 1 — Copiar archivos a la nueva ubicación
En una instalación nueva de Nginx, la raíz del documento está ubicada en /var/www/html
. Sin embargo, siguiendo las guías previas, has creado una nueva raíz de documento, /var/www/tu_dominio/html
. Es posible que también tengas 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.
Puedes buscar la ubicación de tus raíces de documentos usando grep
. Vamos a buscar en el directorio /etc/nginx/sites-enabled
para limitar nuestro enfoque a los sitios activos. La bandera -R
asegura que grep
imprima tanto la línea con la directiva root
como el nombre completo del archivo en su salida:
Si seguiste los tutoriales 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 tienes configuraciones preexistentes, tus resultados pueden diferir de lo que se muestra aquí. En cualquier caso, puedes usar la información de grep
para asegurarte de que estás moviendo los archivos deseados y actualizando los archivos de configuración apropiados.
Ahora que has confirmado la ubicación de tu raíz de documento, puedes copiar los archivos a su nueva ubicación con rsync
. Usando la bandera -a
se conservan los permisos y otras propiedades del directorio, mientras que -v
proporciona una salida detallada para que puedas seguir el progreso de la sincronización:
Nota: Asegúrese de que no haya una barra diagonal al final del directorio, que puede agregarse si utiliza la finalización de pestañas. Cuando hay una barra diagonal al final, rsync
volcará el contenido del directorio en el punto de montaje en lugar de transferirlo a un directorio html
contenedor.
Verá una salida como la siguiente:
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
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 tanto archivos de configuración globales como específicos del sitio. Modificaremos el archivo de bloque del servidor para nuestro proyecto your_domain
: /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 comando grep
en el Paso 1.
Comience abriendo /etc/nginx/sites-enabled/your_domain
en un editor:
Encuentre la línea que comienza con root
y actualícela con la nueva ubicación raíz. En nuestro caso, esto será /mnt/volume-nyc3-01/html
:
server {
root /mnt/volume-nyc3-01/html;
index index.html index.htm index.nginx-debian.html;
. . .
}
. . .
Mantén un ojo abierto por cualquier otro lugar donde veas la ruta raíz del documento original mostrada por grep
en el Paso 1, incluyendo en alias o reescrituras. También deberás actualizar estos para reflejar la nueva ubicación de la raíz del documento.
Cuando hayas realizado todos los cambios necesarios, guarda y cierra el archivo.
Paso 3 — Reiniciando Nginx
Una vez hayas terminado de realizar los cambios de configuración, puedes reiniciar Nginx y probar los resultados.
Primero, asegúrate de que la sintaxis sea correcta:
Si todo está en orden, debería devolver:
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Si la prueba falla, localiza y soluciona los problemas.
Una vez que la prueba pase, reinicia Nginx:
Cuando el servidor haya reiniciado, visita tus sitios afectados y asegúrate de que estén funcionando como se espera. Una vez que te sientas cómodo de que todo está en orden, no olvides eliminar la copia original de los datos:
Ahora has movido con éxito la raíz del documento de Nginx a una nueva ubicación.
Conclusión
En este tutorial, cubrimos cómo cambiar la raíz del documento de Nginx a una nueva ubicación. Esto puede ayudarte con la administración básica del servidor web, como gestionar eficazmente varios sitios en un único servidor. También te permite aprovechar dispositivos de almacenamiento alternativos como el almacenamiento de bloques de red, lo que puede ser útil para escalar un sitio web a medida que cambian sus necesidades.
Si estás gestionando un sitio web ocupado o en crecimiento, es posible que te interese aprender cómo configurar Nginx con HTTP/2 para aprovechar su alta velocidad de transferencia de contenido.