Cómo configurar múltiples dominios y subdominios en Nginx

En esta ocasión vamos a  a configurar un servidor Nginx para crear múltiples dominios en el mismo HOST y subdominios en él. Cada página tendrá su dominio y, por supuesto, no vamos a contratar un servidor para cada dominio. El objetivo es configurar lo que se conoce como hosts virtuales en la máquina.

El método para añadir un dominio es el mismo que para un subdominio, pero para este último habrá que hacer un simple cambio: donde ponga «midominio.com», poned «subdominio.dominio.com».

Paso 1: Instalar Nginx

$ sudo sudo apt update

$sudo apt install nginx

Paso 2: Crear un nuevo directorio

El segundo paso para crear un host virtual es añadir una carpeta a nuestro sistema. Si queremos añadir un dominio.com, hacemos lo siguiente:

$ sudo mkdir -p /var/www/dominio.com/public_html

Paso 3: Permisos

Es necesario y muy importante dar los permisos al usuario y grupo correctos. Al tratarse de una aplicación Web, daremos los permisos a www-data:

$ sudo chown -R www-data:www-data /var/www/dominio.com/public_html

Paso 4: Añadir contenido

Tras crear la carpeta, tenemos que añadir el contenido que se vaya a mostrar cuando el usuario navegue en el dominio. Por lo tanto, vamos a crear un sencillo archivo index.html para comprobar si funciona todo:

$ sudo nano /var/www/dominio.com/public_html/index.html

Añadimos ahora cualquier código HTML.

Paso 5: Crear el Host Virtual en Nginx

A continuación vamos a decirle a Nginx que va a tener un nuevo host virtual que gestionar, es decir, que cuando el usuario introduzca en el navegador midominio.com, el servidor tendrá que leer el archivo de configuración que crearemos para saber qué hacer. En Nginx hay dos rutas importantes. La primera de ellas es sites-available, que contiene los archivos de configuración de los hosts virtuales disponibles en el servidor. La otra es sites-enabled, que contiene los archivos de configuración de los sitios habilitados, es decir, los que funcionan en ese momento. Vamos a crear un archivo para midominio.com:

$ sudo nano /etc/nginx/sites-available/dominio.com

Introducimos el siguiente contenido:

server {
        ## Escucha en el puerto 80 (HTTP)
        listen   80; 

        ## Raíz donde se encuentra la página Web
        root /var/www/dominio.com/public_html;

        ## Orden de prioridad de los archivos index
        index index.html index.htm;

        server_name dominio.com;
}

A pesar de haber creado este archivo, todavía no podemos acceder a nuestra página Web, ya que la configuración está en sites-available, pero no en sites-enabled. Para habilitar el host virtual crearemos un enlace simbólico entre ambas carpetas:

$ sudo ln -s /etc/nginx/sites-available/dominio.com /etc/nginx/sites-enabled/dominio.com

Paso 6: Reiniciar Nginx

A menos que reiniciemos Nginx, los cambios no se aplicarán:

$ sudo service nginx restart

también podemos activar al inicio nginx se ejecute en caso de reiniciar el servidor.

$ sudo service nginx enable

Paso 7: Configurar los DNS

Finalmente tendremos que configurar los registros DNS apunten a tu servidor. En mi caso al utilizar freedns redirecciono mi noip hacia el servidor local que utilzo.

Fuente: https://geekytheory.com/como-configurar-multiples-dominios-y-subdominios-en-nginx

Deja una respuesta

Tu dirección de correo electrónico no será publicada.