Prerrequisitos
Siga esta guía para instalar Nginx en Ubuntu 18.04: Cómo instalar Nginx en Ubuntu 18.04.
Configuración de bloques de servidor
Por defecto, Nginx Ubuntu solo tiene un bloque de servidor. Está configurado para usar archivos en el /var/www/html
.
Necesitamos directorios adicionales si queremos configurar más sitios.
Creamos una estructura dentro de /var/www
para cada uno de nuestros sitios. El contenido web se colocará en un directorio html.
Desde la consola:
sudo mkdir -p /var/www/esempio.com/html
sudo mkdir -p /var/www/test.com/html
Podemos usar la $USER
para asignar los permisos necesarios a la cuenta en la que estamos conectados actualmente (asegúrese de que no está conectado como root). Esto nos permitirá crear o modificar fácilmente el contenido de este directorio:
sudo chown -R $USER:$USER /var/www/esempio.com/html
sudo chown -R $USER:$USER /var/www/test.com/html
Asegurémonos de que los permisos sean correctos:
sudo chmod -R 755 /var/www
Creación de página de muestra
Creemos un archivo index.html para el primer dominio:
nano /var/www/esempio.com/html/index.html
Peguemos el siguiente código de muestra:
<html>
<head>
<title>Benvenuto, esempio.com</title>
</head>
<body>
<h1>Il dominio esempio.com è funzionante!</h1>
</body>
</html>
Guarde y cierre el archivo.
Creemos la segunda página de ejemplo, copiando la primera en el otro directorio raíz.
sudo cp /var/www/esempio.com/html/index.html /var/www/test.com/html/
Abramos el archivo:
sudo nano /var/www/test.com/html/index.html
Editemos el archivo:
<html>
<head>
<title>Benvenuto, test.com</title>
</head>
<body>
<h1>Il dominio test.com è funzionante!</h1>
</body>
</html>
Guarde y cierre el archivo.
Crea un nuevo bloque de servidor para Nginx
Como se mencionó anteriormente, Nginx usa solo un bloque de servidor de forma predeterminada. Así que copiemos el existente y luego editámoslo:
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/esempio.com
Abre el archivo:
sudo nano /etc/nginx/sites-available/esempio.com
Elimine la opción default_server, ya que solo un bloque de servidor puede usar esta opción.
server {
listen 80 default_server;
listen [::]:80 default_server;...
}
Entonces cambia así:
server {
listen 80;
listen [::]:80;...
}
También cambie la raíz raíz principal /var/www/example.com/html; El resultado será este:
server {
listen 80;
listen [::]:80;
root /var/www/esempio.com/html;
index index.html index.htm index.nginx-debian.html;
server_name esempio.com www.esempio.com;
location /{
try_files $uri $uri/=404;
}
}
Crea el segundo bloque de servidor
Copiemos el archivo creado anteriormente y cambiemos los parámetros necesarios:
sudo cp /etc/nginx/sites-available/esempio.com /etc/nginx/sites-available/test.com
Abre el archivo:
sudo nano /etc/nginx/sites-available/test.com
Cámbielo así:
server {
listen 80;
listen [::]:80;
root /var/www/test.com/html;
index index.html index.htm index.nginx-debian.html;
server_name test.com www.test.com;
location /{
try_files $uri $uri/=404;
}
}
Habilitar bloques de servidor
Habilitamos los nuevos bloques de servidor creando enlaces simbólicos al directorio habilitado para sitios, que Nginx usa durante la fase de inicio.
sudo ln -s /etc/nginx/sites-available/esempio.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/test.com /etc/nginx/sites-enabled/
Para evitar problemas de memoria debido a la adición de nuevos bloques de servidor, modificamos un parámetro dentro de nginx.conf
sudo nano /etc/nginx/nginx.conf
Busque y elimine el comentario del siguiente parámetro eliminando el símbolo # antes de la opción server_names_hash_bucket_size.
http {...
server_names_hash_bucket_size 64;...
}
Comprobemos si las configuraciones son correctas:
sudo nginx -t
Si no ha encontrado ningún problema, reinicie nginx:
sudo systemctl restart nginx
Edite el archivo de hosts locales para una prueba (opcional)
Si no usó sus propios nombres de dominio y en su lugar usó valores ficticios, puede modificar la configuración de su computadora local para permitirle probar temporalmente la configuración de los bloques de servidor Nginx recién configurados.
Esto no permitirá que otros visitantes vean su sitio correctamente, pero le dará la posibilidad de acceder a los sitios de forma independiente y probar su configuración. Nota Asegúrese de estar operando en su computadora local durante estos pasos y no en su servidor VPS. Deberá tener acceso de root, ser miembro del grupo administrativo o, de lo contrario, poder modificar los archivos del sistema para hacerlo.
Abra el archivo de hosts:
sudo nano /etc/hosts
Necesita conocer la dirección IP pública del servidor y los dominios que desea apuntar al servidor. Suponiendo que la dirección IP pública es, por ejemplo, 11.11.11.11, edite el archivo así:
127.0.0.1 localhost...
11.11.11.11 esempio.com www.esempio.com
11.11.11.11 test.com www.test.com
Prueba
Ahora que todo está listo, debemos verificar que los bloques del servidor estén funcionando correctamente. Puede hacerlo visitando los dominios en su navegador:
http://esempio.com
http://test.com
Si ambos sitios funcionan, ha configurado correctamente dos bloques de servidor independientes con Nginx.
Si ha editado el archivo de hosts en su computadora local para probar los sitios recién creados, simplemente puede eliminar las últimas líneas agregadas para restaurarlo.
Conclusión
En este tutorial hemos visto cómo crear hosts virtuales (Bloques de servidor) para asociar diferentes dominios a la misma instalación de Nginx, para poder servir diferentes sitios con diferentes dominios en el mismo servidor con Ubuntu 18.04 LTS.