Introducción
Nginx Server Blocks le permite ejecutar más de un sitio web en una sola computadora. Con Server Blocks, puede especificar la raíz del documento del sitio (el directorio que contiene los archivos del sitio web), crear una política de seguridad separada para cada sitio, usar diferentes certificados SSL para cada sitio y mucho más.
Para obtener una guía sobre cómo configurar Single Server Block con Nginx en Debian 10, lea este tutorial.
En este artículo, proporcionaremos instrucciones detalladas sobre cómo configurar un bloque de servidor Nginx en Debian 10 Buster.
Si su intención es instalar Nginx en un servidor remoto, continúe leyendo; de lo contrario, si desea instalar Nginx en su computadora local, omita el primer párrafo "Conexión al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:
ssh root@IP_DEL_SERVER
A continuación, deberá ingresar la contraseña del usuario root.
Si no usa el usuario root, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie root a su nombre de usuario:
ssh VOSTRO_UTENTE@IP_DEL_SERVER
Luego se le pedirá que ingrese su contraseña de usuario.
El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Ahora está conectado a su servidor, está listo para comenzar a instalar Nginx.
Prerrequisitos
Siga esta guía para instalar Nginx: Cómo instalar Nginx en Debian 10.
Configurar bloques de servidor
Por defecto, Nginx Debian 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 variable $ USER para asignar los permisos necesarios a la cuenta en la que estamos conectados actualmente (asegúrese de no haber iniciado sesión 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
Crea una 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.
cp /var/www/esempio.com/html/index.html /var/www/test.com/html/
Abramos el archivo:
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.
Cree 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 la configuración
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 Debian 10 Buster.