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 Ubuntu 20.04.

requisitos previos

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

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

En algunos artículos, el término "Bloques de servidor" se denomina "host virtual". Un host virtual es un término de Apache.

Creación de 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. Puede establecer la raíz del documento en cualquier ubicación que desee. En este ejemplo, utilizaremos la siguiente estructura de directorios:

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

Cada dominio alojado en el servidor tendrá su raíz de documento establecida en /var/www/<domain_name>/public_html.

Comience creando el directorio raíz para el dominio:

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

También crearemos un index.htmlarchivo dentro del directorio raíz del documento del dominio que se mostrará cuando visite el dominio en su navegador:

/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>

Dado que los comandos anteriores se ejecutan como un usuario sudo, los archivos y directorios recién creados son propiedad de root. Para evitar cualquier problema de permisos, cambie la propiedad del directorio raíz del documento del dominio y todos los archivos dentro del directorio al usuario de Nginx ( www-data):

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

Creación de un bloque de servidor

En los sistemas Ubuntu, los archivos de configuración del bloque del servidor Nginx se encuentran en el /etc/nginx/sites-availabledirectorio. Se pueden habilitar creando enlaces simbólicos al /etc/nginx/sites-enableddirectorio, que Nginx lee durante el inicio.

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

/etc/nginx/sitios-disponibles/ejemplo.com
server {
    listen 80;

    server_name example.com www.example.com;

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

    index index.html;

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;
}
  • server_name: Los dominios que deben coincidir para esta configuración de bloque de servidor.
  • root: el directorio desde el que Nginx servirá los archivos de dominio.
  • access_logerror_log: especifica la ubicación de los archivos de registro.

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

Para habilitar el nuevo archivo de bloqueo del servidor, cree un enlace simbólico desde el archivo al sites-enableddirectorio, que Nginx leyó durante el inicio:

sudo ln -s /etc/nginx/sites-available/example.com /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

Finalmente, para verificar que el bloque del servidor funciona 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 Ubuntu. Puede repetir los pasos descritos anteriormente y crear bloques de servidor adicionales para todos sus dominios.

Si tiene algún problema, no dude en dejar un comentario.