Volver a la página principal
viernes 8 noviembre 2024
20

Cómo configurar el soporte para servidores virtuales en Nginx

Nginx permite configurar múltiples servidores virtuales en una misma instancia, una característica esencial para gestionar varios sitios o aplicaciones web en un solo servidor. Esto es particularmente útil para proveedores de hosting y administradores de sistemas que necesitan alojar varios dominios o subdominios en una misma máquina, cada uno con su propia configuración y contenido.

¿Qué es un servidor virtual en Nginx?

Un servidor virtual en Nginx representa una configuración específica asociada a un dominio o subdominio en el servidor. Nginx permite crear múltiples bloques server dentro de su configuración, donde cada bloque define las configuraciones y características para un dominio particular. Estos servidores virtuales pueden compartir la misma dirección IP o tener direcciones IP dedicadas, y son identificados por el nombre del servidor (nombre de dominio) en lugar de la IP.

Configuración básica de servidores virtuales en Nginx

Cada servidor virtual se define dentro de un bloque server, en el archivo de configuración principal de Nginx o en archivos de configuración específicos que se incluyan en este archivo. Los servidores virtuales se identifican mediante la directiva server_name, que especifica el dominio o subdominio al que responden.

Ejemplo de configuración

http {
    # Configuración del servidor virtual para ejemplo1.com
    server {
        listen 80;
        server_name ejemplo1.com www.ejemplo1.com;

        location / {
            root /var/www/ejemplo1;
            index index.html;
        }
    }

    # Configuración del servidor virtual para ejemplo2.com
    server {
        listen 80;
        server_name ejemplo2.com www.ejemplo2.com;

        location / {
            root /var/www/ejemplo2;
            index index.html;
        }
    }
}

En este ejemplo:

  • Dos servidores virtuales están configurados para ejemplo1.com y ejemplo2.com, cada uno con su propio directorio raíz (/var/www/ejemplo1 y /var/www/ejemplo2).
  • La directiva listen 80 indica que ambos servidores escuchan en el puerto 80, el puerto predeterminado para HTTP.

Parámetros para configurar servidores virtuales en Nginx

Parámetro Tipo Descripción
listen Puerto/IP Puerto y/o dirección IP donde el servidor escuchará las solicitudes (por defecto, 80 para HTTP y 443 para HTTPS).
server_name Dominio Nombre de dominio o subdominio que identifica al servidor virtual.
root Ruta Ruta del directorio raíz donde se encuentra el contenido del sitio o aplicación.
index Archivo Archivo de índice predeterminado para las solicitudes (ejemplo: index.html, index.php).
location Directiva Define rutas específicas dentro del servidor para configuraciones adicionales (como proxy, redirección, etc.).

Ejemplos adicionales de configuración

1. Servidor virtual para HTTPS (SSL):

server {
       listen 443 ssl;
       server_name seguro.ejemplo.com;

       ssl_certificate /etc/nginx/ssl/ejemplo.crt;
       ssl_certificate_key /etc/nginx/ssl/ejemplo.key;

       location / {
           root /var/www/seguro;
           index index.html;
       }
   }

2. Servidor virtual con redirección de www a no-www:

server {
       listen 80;
       server_name www.ejemplo.com;
       return 301 http://ejemplo.com$request_uri;
   }

   server {
       listen 80;
       server_name ejemplo.com;

       location / {
           root /var/www/ejemplo;
           index index.html;
       }
   }

3. Servidor virtual multi-dominio:

server {
       listen 80;
       server_name dominio1.com dominio2.com;

       location / {
           root /var/www/multi_dominio;
           index index.html;
       }
   }

Referencias

Para más detalles sobre la configuración de servidores virtuales en Nginx, consulta la documentación oficial de Nginx.

Etiquetas:
nginx
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer