Búsqueda de sitios web

Configurar bloques de servidor Nginx (hosts virtuales) en CentOS/RHEL 8


Un bloque de servidor Nginx es el equivalente a un host virtual Apache y le permite alojar más de un dominio o sitio web en su servidor.

En este artículo, aprenderá cómo configurar bloques de servidor Nginx (hosts virtuales) en CentOS 8 y RHEL 8 Linux.

Requisitos previos:

  • Un registro A para su dominio. En términos simples, un registro A se refiere a una entrada DNS donde el nombre de dominio apunta a la IP pública del servidor, en este caso el servidor web Nginx. A lo largo de esta guía, utilizaremos el nombre de dominio crazytechgeek.info.
  • Un servidor Nginx o pila LEMP instalado en una instancia CentOS 8 o RHEL 8.
  • Un usuario que inicie sesión con privilegios de Sudo.

¡Empecemos!

Paso 1: crear un directorio raíz de documentos Nginx

De buenas a primeras, debe crear un directorio raíz web personalizado para el dominio que desea alojar. Para nuestro caso, crearemos el directorio como se muestra usando la opción mkdir -p para crear todos los directorios principales necesarios:

sudo mkdir -p /var/www/crazytechgeek.info/html

A continuación, asigne los permisos del directorio utilizando la variable de entorno $USER. Mientras lo hace, asegúrese de haber iniciado sesión como usuario normal y no como usuario root.

sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

A continuación, asigne los permisos de directorio correctos de forma recursiva como se muestra:

sudo chmod -R 755 /var/www/crazytechgeek.info/html

Paso 2: cree una página de muestra para el dominio

A continuación, vamos a crear un archivo index.html dentro del directorio raíz web personalizado que será atendido por el dominio una vez que se realice una solicitud.

sudo vim /var/www/crazytechgeek.info/html/index.html

Dentro del archivo, pegue el siguiente contenido de muestra.

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
  <h1>Awesome! Your Nginx server block is working!</h1>
    </body>
</html>

Guarde y salga del archivo de configuración.

Paso 3: cree un bloque de servidor Nginx en CentOS

Para que el servidor web Nginx proporcione el contenido del archivo index.html que creamos en el paso 2, necesitamos crear un archivo de bloque de servidor con las directivas apropiadas. Por lo tanto, crearemos un nuevo bloque de servidor en:

sudo vim /etc/nginx/conf.d/crazytechgeek.info.conf

A continuación, pega la configuración que aparece 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;

}

Cuando haya terminado, guarde los cambios y salga del archivo de configuración. Para confirmar que todas las configuraciones de Nginx son correctas y están libres de errores, ejecute el comando:

sudo nginx -t

¡El resultado a continuación debería ser una confirmación de que está listo para comenzar!

Finalmente, reinicie su servidor web Nginx y confirme que se esté ejecutando como se esperaba:

sudo systemctl restart nginx
sudo systemctl status nginx

Paso 4: Probar el bloque del servidor Nginx en CentOS

Ya hemos terminado con las configuraciones. La única parte que queda es confirmar si nuestro bloque de servidor ofrece contenido en el directorio raíz web definido anteriormente en el archivo index.html.

Para hacer esto, simplemente abra su navegador y vaya al dominio de su servidor como se muestra:

http://domain-name

Como se observó, nuestro contenido está siendo atendido por el bloque del servidor, una clara indicación de que todo salió bien.

Paso 5: habilite HTTPS en un dominio alojado en Nginx

Puede considerar cifrar su dominio usando Lets Encrypt SSL para agregar una capa de protección y proteger el tráfico hacia y desde el servidor web.

sudo dnf install certbot python3-certbot-nginx
sudo certbot --nginx

Para confirmar que su dominio está configurado correctamente en HTTPS, visite https://yourwebsite.com/ en su navegador y busque el ícono de candado en la barra de URL.

Conclusión

Hemos configurado con éxito un bloque de servidor Nginx en CentOS 8 y RHEL 8. Puede repetir lo mismo para varios dominios utilizando el mismo procedimiento.