Cómo configurar bloques de servidor Nginx (hosts virtuales) en Ubuntu 20.04
En ocasiones, es posible que necesites alojar más de un dominio o sitio web en tu servidor web Nginx. Para que eso suceda, es necesario configurar un Bloque de Servidor (Hosts Virtuales) para encapsular toda la configuración de su dominio. Los bloques de servidor Nginx son sinónimos de archivos de host virtual Apache y tienen el mismo propósito.
Este tema demuestra cómo configurar un bloque de servidor Nginx en Ubuntu 20.04.
Requisitos previos:
- Un registro
A
definido en su proveedor de alojamiento de nombres de dominio. Un registroA
es un registro DNS que apunta el nombre de dominio a la dirección IP del servidor público. En esta guía, utilizaremos el nombre de dominiocrazytechgeek.info
con fines ilustrativos. - Un servidor Nginx o pila LEMP instalado en una instancia de Ubuntu 20.04 LTS.
- Un usuario que inicie sesión con privilegios de Sudo.
Una vez cumplidos todos los requisitos, exploremos cómo puede configurar un bloque de servidor Nginx en Ubuntu.
Paso 1: crear un directorio raíz de documentos Nginx
Para comenzar, crearemos un directorio separado para nuestro dominio que contendrá todas las configuraciones relacionadas con el dominio.
sudo mkdir -p /var/www/crazytechgeek.info/html
A continuación, asigne la propiedad del directorio utilizando la variable de entorno $USER
. Esto asigna la propiedad del directorio al usuario actualmente conectado. Asegúrese de haber iniciado sesión con una cuenta de usuario normal y no como root.
sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html
A continuación, asigne los permisos apropiados al directorio, otorgando al usuario que inició sesión todos los derechos (lectura, escritura y ejecución) y al grupo y a otros usuarios permisos de lectura y ejecución únicamente.
sudo chmod -R 755 /var/www/crazytechgeek.info
Con los permisos y la propiedad del directorio configurados correctamente, necesitamos crear una página web de muestra para el dominio.
Paso 2: cree una página de muestra para el dominio
En este paso, vamos a crear un archivo index.html
para fines de prueba. Este archivo proporcionará contenido que se mostrará en el navegador web cuando se llame al dominio en el navegador.
sudo vim /var/www/crazytechgeek.info/html/index.html
Pegue el siguiente contenido HTML.
<html>
<head>
<title>Welcome to your_domain!</title>
</head>
<body>
<h1>Bravo! Your server block is working as expected!</h1>
</body>
</html>
Guarde y salga del archivo de configuración.
Paso 3: cree un bloque de servidor Nginx en Ubuntu
Los bloques del servidor Nginx se encuentran en el directorio /etc/nginx/sites-available
. El bloque del servidor Nginx predeterminado es /etc/nginx/sites-available/default
que sirve el archivo HTML predeterminado en /var/www/html/index.nginx-debian.html .
Para nuestro caso, necesitamos crear un bloque de servidor que servirá el contenido del archivo index.html
que creamos anteriormente.
Entonces, cree el archivo de bloque del servidor que se muestra.
sudo vim /etc/nginx/sites-available/crazytechgeek.info
Pegue el contenido a continuación:
server {
listen 80;
listen [::]:80;
root /var/www/crazytechgeek.info/html;
index index.html index.htm index.nginx-debian.html;
server_name crazytechgeek.info www.crazytechgeek.info;
location / {
try_files $uri $uri/ =404;
}
access_log /var/log/nginx/crazytechgeek.info.access.log;
error_log /var/log/nginx/crazytechgeek.info.error.log;
}
Guardar y salir del archivo.
Paso 4: habilite el bloqueo del servidor Nginx en Ubuntu
Para habilitar el bloque del servidor Nginx, debe vincularlo simbólicamente al directorio /etc/nginx/sites-enabled/
como se muestra.
sudo ln -s /etc/nginx/sites-available/crazytechgeek.info /etc/nginx/sites-enabled/
En este punto, prácticamente hemos terminado. Sin embargo, es prudente confirmar que todas las configuraciones estén en orden. Para hacerlo, ejecute el comando:
sudo nginx -t
Si siguió nuestros pasos correctamente, debería obtener el resultado que se muestra:
Finalmente, reinicie Nginx para que los cambios realizados en los archivos de configuración surtan efecto.
sudo systemctl restart Nginx
Luego confirme si Nginx se está ejecutando ejecutando el comando que se muestra:
sudo systemctl status Nginx
Paso 5: Probar el bloque del servidor Nginx en Ubuntu
Para confirmar si el bloque del servidor funciona como se esperaba y ofrece contenido en el directorio /var/www/crazytechgeek.info
, abra su navegador web y busque el nombre de dominio de su servidor:
http://domain-name
Debería obtener el contenido del archivo HTML en su bloque de servidor como se muestra.
Conclusión
En esta guía, le mostramos cómo configurar un bloque de servidor Nginx usando un único dominio en Ubuntu Linux. Puede repetir los mismos pasos para diferentes dominios y aún así lograr los mismos resultados. Esperamos que la guía haya sido reveladora.