Un bloque de servidor es una directiva de Nginx que define la configuración de un dominio específico, lo que le permite ejecutar más de un sitio web en un solo servidor. Para cada sitio web, puede configurar la raíz del documento del sitio (el directorio que contiene los archivos del sitio web), crear una política de seguridad separada, usar diferentes certificados SSL y mucho más.

Este artículo describe cómo configurar bloques de servidor Nginx en CentOS 8.

requisitos previos

Asegúrese de haber cumplido con los siguientes requisitos antes de continuar con este tutorial:

  • Nombre de dominio que apunta a la IP de su servidor público.
  • Nginx instalado en su sistema CentOS .
  • Ha iniciado sesión como root o usuario con privilegios sudo .

En alguna documentación, el término Server Blocksse conoce como Virtual hostUn host virtual es un término de Apache.

Creación de la estructura del directorio

La raíz del documento es el directorio en el que se almacenan y sirven los archivos del sitio web para un nombre de dominio en respuesta a las solicitudes. La raíz del documento se puede configurar en cualquier ubicación que desee.

Usaremos la siguiente estructura de directorios:

/var/www/
├── example.com
│   └── public_html
├── example2.com
│   └── public_html
├── example3.com
│   └── public_html

Para cada dominio que se hospedará en el servidor, crearemos un directorio separado dentro de /var/wwwDentro del directorio del dominio, crearemos un public_htmldirectorio que será el directorio raíz del documento del dominio y almacenará los archivos del sitio web del dominio.

Comencemos creando el directorio raíz para el dominio example.com:

sudo mkdir -p /var/www/example.com/public_html

Para fines de prueba, cree un index.htmlarchivo dentro del directorio raíz del documento del dominio:

sudo nano /var/www/example.com/public_html/index.html

Copie y pegue el siguiente código en el archivo:

/var/www/ejemplo.com/public_html/index.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Welcome to example.com</title>
  </head>
  <body>
    <h1>Success! example.com home page!</h1>
  </body>
</html>

Para evitar cualquier problema de permisos, cambie la propiedad del directorio raíz del documento de dominio a usuario nginx:

sudo chown -R nginx: /var/www/example.com

Creación de un bloque de servidor

De forma predeterminada en CentOS, los archivos de configuración del bloque del servidor Nginx deben terminar con .confy se almacenan en el /etc/nginx/conf.ddirectorio.

Abra su editor de texto y cree el archivo de configuración para el dominio:

sudo nano /etc/nginx/conf.d/example.com.conf

El archivo de configuración puede tener el nombre que desee, pero por lo general, es mejor usar el nombre de dominio.

Copie y pegue el siguiente código en el archivo:

/etc/nginx/conf.d/ejemplo.com.conf
server {
    listen 80;
    listen [::]:80;

    root /var/www/example.com/public_html;

    index index.html;

    server_name example.com www.example.com;

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    location / {
        try_files $uri $uri/ =404;
    }
}

Guarde el archivo y verifique la configuración de Nginx en busca de errores de sintaxis:

sudo nginx -t

Si no hay errores, la salida se verá así:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Reinicie el servicio Nginx para que los cambios surtan efecto:

sudo systemctl restart nginx

Finalmente, para verificar si el bloque del servidor está funcionando como se espera, ábralo http://example.comen el navegador de su elección y verá algo como esto:

Conclusión

Le mostramos cómo crear bloques de servidor Nginx y alojar múltiples dominios en un solo servidor CentOS. Puede repetir los pasos descritos anteriormente y crear bloques de servidor adicionales para todos sus dominios.

Si desea proteger su sitio web con un certificado SSL, puede generar e instalar un certificado Letsencrypt SSL gratuito .

Siéntase libre de dejar un comentario si tiene alguna pregunta.