Cómo configurar bloques de servidor Nginx (hosts virtuales) en Ubuntu 20.04
En ocasiones, es posible que deba alojar más de un dominio o sitio web en su 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 los 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.
- An
A
record defined on your domain name hosting provider. AnA
record is a DNS record that points the domain name to the Public server IP address. For this guide, we will use the domain namecrazytechgeek.info
for illustration purposes. - An Nginx Server or LEMP Stack installed on Ubuntu 20.04 LTS instance.
- A login user with Sudo privileges.
Con todos los requisitos cumplidos, exploremos cómo se puede configurar un bloque de servidor Nginx en Ubuntu.
Paso 1: Cree un directorio raíz de documentos de 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 mediante la variable de entorno $ USER
. Esto asigna la propiedad del directorio al usuario actualmente conectado. Asegúrese de haber iniciado sesión con la cuenta de un usuario normal y no como root.
$ sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html
A continuación, asigne los permisos adecuados al directorio, otorgando al usuario que inició sesión todos los derechos (lectura, escritura y ejecución) y el grupo y otros usuarios solo leen y ejecutan permisos.
$ 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: crear una página de muestra para el dominio
En este paso, crearemos un archivo index.html
con fines de prueba. Este archivo ofrecerá 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: crea un bloque de servidor Nginx en Ubuntu
Los bloques del servidor Nginx se encuentran en el directorio /etc/nginx/sites-available
. El bloque de 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 sirva el contenido en el 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 bloque 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, 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 está funcionando como se esperaba y está sirviendo 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.

En esta guía, le mostramos cómo configurar un bloque de servidor Nginx utilizando un solo dominio en Ubuntu Linux. Puede repetir los mismos pasos para diferentes dominios y aun así lograr los mismos resultados. Esperamos que la guía haya sido reveladora.