Introducción
Nginx es un potente servidor HTTP para almacenar documentos en el directorio. / var / www / html (Raiz del documento). Este directorio está en un sistema de archivos raíz con otros directorios del sistema operativo. A veces es importante tener este directorio raíz de documentos (/ var / www / html) en otro directorio, p. ej. B. un sistema de archivos montado por separado.
Esto es especialmente útil si ofrece servicios a numerosos sitios web desde una instancia de Nginx. Al colocar cada raíz de documento en un volumen diferente, es fácil escalar con las crecientes necesidades de cualquier sitio web o cliente.
Este tutorial lo ayudará a mover la raíz web de Nginx a otra ubicación.
requisitos
Para que pueda seguir estas instrucciones sin errores, necesita lo siguiente:
- Servidor Ubuntu 18.04
- Usuario no root con permisos sudo
- Una configuración de certificado SSL / TLS para su servidor Ubuntu 18.04.
- Este tutorial también hará uso de example.com como nombre de dominio. Recuerde reemplazar este dominio con su nombre de dominio único.
- Una nueva ubicación de la raíz del documento. En nuestra guía usaremos el directorio / mnt / volume-nyc3-01, como la nueva ubicación para el directorio raíz del documento.
Paso 1: transferir archivos a su nueva ubicación
Cuando Nginx está instalado y completamente configurado, / var / www / html sirve como la ubicación predeterminada del documento o el directorio raíz del documento. Nuestro objetivo es mover la raíz de este documento a otra ubicación. /var/www/example.com/html. Primero, averigüemos la ubicación exacta de las raíces del documento y luego transfieramos todos los archivos importantes a la nueva ubicación.
Usamos el comando grep para ver dónde están las raíces del documento. Ejecute el siguiente comando para buscar la ubicación en el directorio / etc / nginx / sites-enabled:
$ grep -R "root"/etc/nginx/sites-enabled
El comando centra la búsqueda en todos los sitios activos. Incluye un -R Bandera que permite a grep imprimir tanto el nombre completo como la línea con una directiva root. Esto le dará un resultado similar al siguiente:
/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;
La salida puede diferir según las configuraciones existentes. Por esta razón, es bueno usar grep para asegurarse de que está moviendo los archivos correctos a las nuevas ubicaciones y realizando cambios en los archivos de configuración que desea.
Una vez que haya confirmado la ubicación raíz del documento, use el rsync para copiar estos archivos y moverlos a la nueva ubicación.
$ sudo rsync -av /var/www/example.com/html /mnt/volume-nyc3-01
El comando contiene un -a Indicador que continúa con los permisos del directorio y conserva otras propiedades importantes del directorio. Por otro lado, el indicador -v proporciona una salida detallada para ayudarlo a monitorear la sincronización.
La salida será:
sending 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
Los archivos ahora están en su lugar, pero necesitamos modificar el archivo de configuración de Nginx para adaptarse a los cambios.
Paso 2: actualice los archivos de configuración de Nginx
El servidor web Nginx utiliza archivos de configuración globales y específicos del sitio. Aquí cambiamos el archivo /etc/nginx/sites-enabled/example.com; un archivo de servidor de bloques para el dominio example.com.
Nota: Debe reemplazar example.com con su nombre de dominio.
Primero, ejecute el siguiente comando para abrir este archivo:
$ sudo nano /etc/nginx/sites-enabled/example.com
Después de abrir el archivo, busque una línea que comience con raíz. Ahora actualice esta línea con el valor de su nuevo directorio raíz de documentos. Este tutorial usa / mnt / volume-nyc3-01 / html como la nueva ubicación. Deberías:
server { root /mnt/volume-nyc3-01/html; index index.html index.htm index.nginx-debian.html; . . . } . . .
Nota: Anote todos los demás lugares que contengan rastros de la ruta raíz del documento antiguo. Cualquier ruta raíz, alias o reescritura que muestre detalles del archivo del documento original debe actualizarse para reflejar la nueva ubicación de la raíz del documento.
Después de realizar los cambios necesarios, guarde y cierre el archivo del servidor de bloques.
Paso 3: reinicia Nginx
Movimos los archivos con éxito e hicimos cambios en el archivo de configuración de Nginx. A continuación, reiniciaremos el servicio Nginx para que estos cambios surtan efecto.
Primero, ejecute el siguiente comando para verificar la sintaxis:
$ sudo nginx -t
Si todo está bien, debería obtener el siguiente resultado:
nginx: the configuration file /etc/nginx/nginx.confsyntax is ok nginx: configuration file /etc/nginx/nginx.conftest is successful
Si esta prueba falla, investigue el problema y corríjalo. A continuación, ejecute el siguiente comando para reiniciar su servicio Nginx:
$ sudo systemctl restart nginx
Después de reiniciar el servicio, verifique todos los sitios web afectados por la trampa de raíz web y asegúrese de que estén funcionando correctamente. Cuando esté satisfecho con los resultados, ejecute el siguiente comando para eliminar la copia original de los datos:
$ sudo rm -Rf /var/www/example.com/html
¡Eso es!
Conclusión
¡Felicidades! Ha movido la raíz web de Nginx a otra ubicación y ahora puede administrar fácilmente su servidor web.