Configuración de Bloques de Servidor con Nginx en Ubuntu 22.04
Nginx, pronunciado «engine x», es un servidor HTTP y proxy inverso de alto rendimiento y de código abierto. Es conocido por manejar la carga de algunos de los sitios más grandes de Internet. Nginx se puede utilizar como un servidor web independiente, equilibrador de carga, caché de contenido y proxy inverso tanto para servidores HTTP como no HTTP.
Un bloque de servidor es una directiva de Nginx que define configuraciones específicas para un dominio. Esto te permite alojar múltiples sitios web en un solo servidor. Para cada sitio web, puedes configurar la raíz del documento del sitio (el directorio que contiene los archivos del sitio web), establecer políticas de seguridad individuales, usar diferentes certificados SSL y más.
Este artículo detalla cómo configurar bloques de servidor con Nginx en Ubuntu 22.04, permitiéndote gestionar múltiples sitios web en un solo servidor y personalizar la configuración de cada sitio según tus necesidades.
Prerrequisitos
Antes de proceder, asegúrate de cumplir con los siguientes requisitos:
- Nombre de dominio apuntando a tu IP pública del servidor: Asegúrate de que los registros DNS de tu dominio estén configurados correctamente para apuntar a la dirección IP de tu servidor público.
- Nginx instalado en tu sistema Ubuntu: Si Nginx no está instalado, puedes instalarlo ejecutando
sudo apt update
seguido desudo apt install nginx
. - Acceso como usuario root o con privilegios de sudo: Necesitarás permisos elevados para realizar las configuraciones necesarias.
Es importante destacar que en algunos artículos relacionados con servidores web, el término «Bloques de Servidor» se refiere a «Host Virtual». Este último es un término utilizado comúnmente en Apache, otro servidor web.
Creando la Estructura del Directorio
La raíz del documento es el directorio donde se almacenan los archivos del sitio web para un dominio específico y desde donde se sirven en respuesta a las solicitudes del usuario. Puedes establecer la raíz del documento en cualquier ubicación que prefieras. En este ejemplo, usaremos la siguiente estructura de directorios:
/var/www/
├── extassisnetwork.com
│ └── public_html
├── e-servidor.com
│ └── public_html
Nota: Los nombres de dominio extassisnetwork.com
y e-servidor.com
se utilizan aquí como ejemplos. Debes reemplazarlos con tus propios nombres de dominio reales, como tudominio.com
o tudominio2.com
.
Cada dominio alojado en el servidor tendrá su raíz de documento configurada en /var/www/<nombre_del_dominio>/public_html
.
Configuración para extassisnetwork.com
Comienza creando el directorio raíz para el dominio extassisnetwork.com
:
sudo mkdir -p /var/www/extassisnetwork.com/public_html
A continuación, crea un archivo index.html
en el directorio raíz del dominio. Este archivo se mostrará como la página predeterminada cuando se acceda a la URL del dominio en un navegador web:
/var/www/extassisnetwork.com/public_html/index.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to extassisnetwork.com</title>
</head>
<body>
<h1>¡Éxito! Página principal de extassisnetwork.com</h1>
</body>
</html>
Para evitar problemas de permisos, es necesario cambiar la propiedad del directorio raíz del documento del dominio y de todos los archivos dentro de dicho directorio al usuario de Nginx (www-data
):
sudo chown -R www-data: /var/www/extassisnetwork.com
Configuración para e-servidor.com
Repite los mismos pasos para el segundo dominio e-servidor.com
:
sudo mkdir -p /var/www/e-servidor.com/public_html
Crea un archivo index.html
en el directorio raíz del dominio e-servidor.com
:
/var/www/e-servidor.com/public_html/index.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to e-servidor.com</title>
</head>
<body>
<h1>¡Éxito! Página principal de e-servidor.com</h1>
</body>
</html>
Cambia la propiedad de este directorio y de sus archivos al usuario www-data
:
sudo chown -R www-data: /var/www/e-servidor.com
Creando Bloques de Servidor
En sistemas Ubuntu, los archivos de configuración para los bloques de servidor de Nginx se almacenan en el directorio /etc/nginx/sites-available
. Estos archivos se pueden habilitar creando enlaces simbólicos en el directorio /etc/nginx/sites-enabled
, que Nginx lee durante el arranque.
Configuración para extassisnetwork.com
Abre tu editor de texto y crea el siguiente archivo de bloque de servidor para extassisnetwork.com
:
sudo nano /etc/nginx/sites-available/extassisnetwork.com
Dentro del archivo, añade la siguiente configuración:
server {
listen 80;
server_name extassisnetwork.com www.extassisnetwork.com;
root /var/www/extassisnetwork.com/public_html;
index index.html;
access_log /var/log/nginx/extassisnetwork.com.access.log;
error_log /var/log/nginx/extassisnetwork.com.error.log;
}
- server_name: Especifica los dominios que coincidirán con esta configuración de bloque de servidor.
- root: El directorio desde el cual Nginx servirá los archivos del dominio.
- access_log, error_log: Especifica la ubicación de los archivos de registro.
Para habilitar este bloque de servidor, crea un enlace simbólico en el directorio sites-enabled
:
sudo ln -s /etc/nginx/sites-available/extassisnetwork.com /etc/nginx/sites-enabled/
Configuración para e-servidor.com
Repite el proceso para el dominio e-servidor.com
:
sudo nano /etc/nginx/sites-available/e-servidor.com
Añade la siguiente configuración:
server {
listen 80;
server_name e-servidor.com www.e-servidor.com;
root /var/www/e-servidor.com/public_html;
index index.html;
access_log /var/log/nginx/e-servidor.com.access.log;
error_log /var/log/nginx/e-servidor.com.error.log;
}
Habilita este bloque de servidor con un enlace simbólico:
sudo ln -s /etc/nginx/sites-available/e-servidor.com /etc/nginx/sites-enabled/
Verificando la Configuración
Para asegurarte de que la sintaxis de la configuración de Nginx es correcta, realiza una prueba con el siguiente comando:
sudo nginx -t
Si no hay errores, la salida será similar a:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Reiniciando Nginx
Para aplicar los cambios, reinicia el servicio de Nginx:
sudo systemctl restart nginx
Verificando el Funcionamiento de los Bloques de Servidor
Finalmente, abre los dominios http://extassisnetwork.com
y http://e-servidor.com
en tu navegador para verificar que cada sitio esté funcionando correctamente. Deberías ver las páginas de bienvenida correspondientes que has configurado en los archivos index.html
.
Nota: Asegúrate de reemplazar extassisnetwork.com
y e-servidor.com
con tus propios nombres de dominio reales en todas las configuraciones y comandos, por ejemplo, tudominio.com
o tudominio2.com
.
Conclusión
Hemos demostrado cómo configurar bloques de servidor en Nginx para alojar múltiples dominios en un solo servidor Ubuntu. Puedes repetir los pasos anteriores para añadir más bloques de servidor para otros dominios. Esta configuración permite una gestión centralizada y eficiente de varios sitios web, personalizando cada uno según las necesidades específicas del dominio.