Cómo configurar hosts virtuales en Nginx en Ubuntu ⋆ ALexHost SRL

Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills
11.02.2025

Cómo configurar hosts virtuales en Nginx en Ubuntu

Configurar hosts virtuales en Nginx le permite alojar múltiples sitios web en un único servidor, teniendo cada sitio web su propio nombre de dominio. Los hosts virtuales de Nginx se configuran mediante “bloques de servidor” que definen los ajustes para cada sitio web. Esta guía le guiará a través de la configuración de hosts virtuales en un servidor Ubuntu con Nginx.

1. Requisitos previos

  • Nginx instalado: Asegúrese de que Nginx está instalado en su servidor. Si no es así, instálelo con:
    sudo apt update
    sudo apt install nginx
  • Nombres de dominio: Haz que los nombres de dominio que quieres alojar apunten a la dirección IP de tu servidor. Puede modificar su archivo /etc/hosts para realizar pruebas.

2. Configure directorios para cada sitio web

Cada sitio web debe tener su propio directorio para almacenar los archivos del sitio web. Vamos a crear directorios para dos sitios web de ejemplo, ejemplo1.com y ejemplo2.com.

sudo mkdir -p /var/www/example1.com/html
sudo mkdir -p /var/www/example2.com/html

Conceda la propiedad de estos directorios al usuario Nginx (www-data) para asegurarse de que Nginx tiene los permisos necesarios.

sudo chown -R www-data:www-data /var/www/example1.com/html
sudo chown -R www-data:www-data /var/www/example2.com/html

Establezca los permisos adecuados:

sudo chmod -R 755 /var/www

3. Crear contenido de muestra

Para probar los hosts virtuales, añada archivos HTML de muestra para cada sitio.

Ejemplo1.com:

echo "<h1>Welcome to Example1.com!</h1>" | sudo tee /var/www/example1.com/html/index.html

Example2.com:

echo "<h1>Welcome to Example2.com!</h1>" | sudo tee /var/www/example2.com/html/index.html

4. Crear archivos de configuración de host virtual

Ahora, crearemos un archivo de configuración de bloque de servidor (host virtual) para cada sitio web. Nginx almacena estos archivos de configuración en el directorio /etc/nginx/sites-available/.

Paso 1: Crear configuración para Example1.com

Crea un nuevo archivo de configuración para ejemplo1.com:

sudo nano /etc/nginx/sitios-disponibles/ejemplo1.com

Añade la siguiente configuración

server {
listen 80;
server_name example1.com www.example1.com;
root /var/www/example1.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}

Paso 2: Crear configuración para Example2.com

Cree un archivo de configuración para ejemplo2.com:

sudo nano /etc/nginx/sites-available/example2.com

Añade la siguiente configuración

server {
listen 80;
server_name example2.com www.example2.com;
root /var/www/example2.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}

5. Habilitar los hosts virtuales

Nginx utiliza enlaces simbólicos para habilitar hosts virtuales. Enlaza los archivos de configuración de sites-available a sites-enabled:

sudo ln -s /etc/nginx/sites-available/example1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/example2.com /etc/nginx/sites-enabled/

6. Pruebe la configuración

Para asegurarte de que no hay errores de sintaxis en tu configuración, ejecuta

sudo nginx -t

Si todo es correcto, verás un mensaje de confirmación. Si hay errores, Nginx mostrará detalles para ayudarte a solucionarlos.

7. Reiniciar Nginx

Después de confirmar la configuración, reinicie Nginx para aplicar los cambios:

sudo systemctl restart nginx

8. Acceda a los sitios web

Si los nombres de dominio apuntan a su servidor, ahora debería poder acceder a cada sitio visitándolo:

  • http://example1.com
  • http://example2.com

Para realizar pruebas locales, puede editar su archivo /etc/hosts para asignar los nombres de dominio a la dirección IP de su servidor. Añade entradas como:

127.0.0.1 example1.com 127.0.0.1 example2.com

Guarde y cierre el archivo y, a continuación, intente acceder a los sitios en su navegador.

9. Activación de HTTPS para cada sitio (opcional)

Para conexiones seguras, puede configurar certificados SSL utilizando Let’s Encrypt. Para activar HTTPS:

Instale certbot:

sudo apt install certbot python3-certbot-nginx

Ejecute el siguiente comando para obtener y configurar certificados SSL para cada dominio:

sudo certbot --nginx -d example1.com -d www.example1.com
sudo certbot --nginx -d example2.com -d www.example2.com

Siga las instrucciones y Certbot configurará automáticamente HTTPS en su configuración de Nginx.

Conclusión

Mediante la configuración de hosts virtuales en Nginx en Ubuntu, puede alojar varios sitios web en un único servidor, cada uno con su propia configuración y contenido. Esta configuración es eficiente y escalable, haciendo de Nginx una excelente opción para alojar múltiples sitios en el mismo servidor.

Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills