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 explica cómo configurar bloques de servidor Nginx en Debian 10.

requisitos previos

Asegúrese de haber cumplido con los siguientes requisitos previos:

  • Nombre de dominio que apunta a la IP de su servidor público.
  • Nginx instalado en su sistema Debian.
  • 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.

Crear la estructura del directorio

La raíz del documento es el directorio donde se almacenan y sirven los archivos del sitio web para un nombre de dominio en respuesta a las solicitudes. La raíz del documento puede ser cualquier directorio del servidor.

Los ejemplos de este artículo utilizan la siguiente estructura de directorios:

/var/www/
├── domain1.com
│   └── public_html
├── domain2.com
│   └── public_html
├── domain3.com
│   └── public_html

Básicamente, crearemos un directorio separado para cada dominio que queramos alojar en nuestro servidor dentro del /var/wwwdirectorio. Dentro de cada uno de estos directorios, crearemos un public_htmldirectorio que almacenará los archivos del sitio web del dominio.

Ejecute el siguiente comando para crear el directorio raíz del dominio example.com:

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

A continuación, cree un index.htmlarchivo dentro del directorio raíz de documentos del dominio:

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

Abra el archivo y pegue las siguientes líneas:

/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 problemas de permisos, cambie la propiedad del directorio raíz del documento de dominio al usuario de Nginx ( www-data):

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

Crear un bloque de servidor

De forma predeterminada, en los sistemas Debian, los archivos de configuración de bloques del servidor Nginx se almacenan en el /etc/nginx/sites-availabledirectorio. Para activar una configuración, debe vincular el archivo al /etc/nginx/sites-enabled/directorio.

Abra su editor de texto y cree el siguiente archivo de bloque de servidor:

sudo nano /etc/nginx/sites-available/example.com.conf
/etc/nginx/sitios-disponibles/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;
    }
}

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

Habilite el nuevo archivo de bloqueo del servidor creando un enlace simbólico desde el archivo al sites-enableddirectorio:

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Pruebe la configuración de Nginx para la sintaxis correcta:

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

Para verificar que el bloque del servidor funciona como se esperaba, abra http://example.comsu navegador y verá algo como esto:

Conclusión

Le mostramos cómo crear bloques de servidores Nginx y alojar múltiples dominios en un solo servidor Debian. Para crear un bloque de servidor para otro dominio, repita los mismos pasos.

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.