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.

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.