Pasos previos:

1. Instalación do servidor LEMP: https://blog.atio.es/node/441

2. Instalación de Drupal9: https://blog.atio.es/node/442

Polo tanto xa dispoñemos un Drupal 9 instalado nun servidor LEMP. Configuremos o Drupal xa instalado para que lle dea soporte a varios dominios, é dicir para ter varias páxinas web que empregan os módulos, o core do Dupral principal, ocupando menos espazo e coa vantaxe de que só precisamos actualizar un só sitio.

Paso 1. Configuración dos dominios. Dirixímonos ao noso proveedor de nomes de dominio, no meu caso dinahosting.com e creamos varios subdominios que apunten á ip do servidor, neste caso á ip 164.92.209.43

Fago varios Rexistro tipo A, aínda que neste exemplo só imos empregar d.atio.es, pero podo facer tantos como páxinas queira ter no multisite

d.atio.es -> 164.92.209.43

Paso 2. Accedemos por ssh ao servidor e creamos os seguintes cartafoles dentro do cartafol  blog, que é o cartafol onde instalamos o drupal principal e creamos e asignamos os permisos necesarios para cada un dos subcartafoles

mkdir -p /srv/http/blog/sites/atio/files/translations
chmod -R 777 /srv/http/blog/sites/atio/files
cp /srv/http/blog/sites/default/default.settings.php  /srv/http/blog/sites/atio/settings.php
chmod 777 /srv/http/blog/sites/atio/settings.php

Paso 3. Copiamos o ficheiro example.sites.php a sites.php. Este ficheiro é o encargado de redirixir o navegador a unha ruta interna e concreta de Drupal, en función do nome de dominio que faga a chamada. Vexamos como se configura:

cp /srv/http/blog/sites/example.sites.php /srv/http/blog/sites/sites.php
nano /srv/http/blog/sites/sites.php

E engadimos un conxunto de liñas necesarias para redixir a búsqueda dos dominios aos distintos cartafoles. No noso caso só estamos configurando o dominio d.atio.es para que apunte ao cartafol /srv/http/blog/sites/atio/, polo tanto deixámolo do seguinte xeito:

$sites['d.atio.es'] = 'atio';

Paso 4. Configuramos o ficheiro do virtual host.

cd /etc/nginx/sites-avaliable

Descargamos o ficheiro default, se non o temos xa descargado neste cartafol

wget https://atio.es/pub/vhost_default

Copiamos no vhost_default c nome mnmoténico da configuración da páxina que estamos configurando

cp default atio

E editámolo e configurámolo

nano atio

a. Cambiamos o root

root /srv/http;   
por:
root /srv/http/blog;

b.  O server_name

server_name _;
por:
server_name d.atio.es;

c. Se desexamos empregar a versión php 7.4 en vez da 8.1, cambiamos a liña fastcgi_pass unix:/run/php-fpm/php-fpm.sock; por esta fastcgi_pass unix:/run/php-fpm7/php-fpm.sock;

# pass PHP scripts to FastCGI server 
       #
       location ~ \.php$ {
               include fastcgi.conf;
               # With php-fpm (or other unix sockets):
               fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
       #       # With php-cgi (or other tcp sockets):
       #       fastcgi_pass 127.0.0.1:9000;
       }

por:

 # pass PHP scripts to FastCGI server
        #
        location ~ \.php$ {
                #include snippets/fastcgi-php.conf;
                include fastcgi.conf;

                # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/run/php-fpm7/php-fpm.sock;
        #       # With php-cgi (or other tcp sockets):
        #       fastcgi_pass 127.0.0.1:9000;
        }

Paso 5. Creamos un enlace simbólico ao cartafol sites-enabled, comprobamos a sintaxis da configuración e recargamos o nginx

sudo ln -s /etc/nginx/sites-available/atio /etc/nginx/sites-enabled/
nginx -t
nginx -s reload

Paso 6. Xeramos os certificados do dominio d.atio.es coa ferramenta Certbot

certbot --nginx

e o sistema pregúntanos para que dominios queremos activar https. Neste caso escollemos o segundo d.atio.es, inserimos un 2, polo tanto.

Paso 7. Accedemos co navegador no dominio d.atio.es e procedemos a instalar este sitio que acabamos de configurar que a súa vez está dentro dun Drupal principal.

E configuramos unha nova base de datos para este novo sitio

 

E cando remate teremos o novo sitio funcionando. Non podemos esquecer restrinxir o modo escritura no ficheiro settings.php do espazo que acabamos de crear.

chmod 644 /srv/http/blog/sites/atio/settings.php

E tal e como explicamos aquí, para protexer o servidor contra os ataques HTTP HOST Header:

nano /srv/http/blog/sites/default/settings.php
 $settings['trusted_host_patterns'] = [
    '^d.atio\.es$',
    '^www\.d.atio\.es$'
  ];

Repetindo o proceso, podemos ter cantos espazos web como desexemos.