Como configurar 2 o más sitios en nginx

Published:

En esta breve guía vamos a estudiar un poco como configurar nginx para que podamos tener varios sitios escuchando en el mismo puerto (80 por defecto), pero diferenciados por distintos subdominios.

1- Instalar nginx para Debian y derivadas o Rhel y derivadas.

apt install nginx
yum install nginx

NOTA:
Una vez instalado nginx en el caso de Debian y derivadas el servicio se activa solo, pero en caso de otras distros puede que tengas que iniciarlo manualmente con

systemctl start nginx

2- Crear 2 subdominios

En /etc/nginx vamos a ver toda la configuración del motor web, pero vamos a usar solo sites-enabled y sites-available, lo primero es crear en sites-available 2 subdominios

cd /etc/nginx/sites-available
cp default jorge.nksistemas.com
cp default nk1.nksistemas.com

2.1- Modificamos los archivos creados, solo 3 parámetros.

1: Quitamos el default_server, de la parte de listen, porque si no nos daría el error: [emerg] a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-available/… Esto se debe a que solo puede haber un solo default server. Por lo tanto los quitamos en ambos archivos.
2: Modificamos el root que deberíamos crear una carpeta para cada subdominio y dejarlo configurado acá /var/www/html/jorge y /var/www/html/nk1.
3: En server_name quitamos el _ y colocamos el subdominio correspondiente en el caso de jorge jorge.nksistemas.com y nk1 lo mismo en su archivo.

2.2- Creamos la carpeta para cada subdominio

mkdir /var/www/html/jorge
mkdir /var/www/html/nk1

2.3- Creamos el index de cada sitio

echo "Hola soy Jorge" > /var/www/html/jorge/index.html
echo "Hola soy NK1" > /var/www/html/nk1/index.html

3- Modifimos los dns

Dado que estos subdominios no existen, vamos a decirle a nuestro sistema que cuando usemos esos dominios los direcciones al localhost, y cuando usemos jorge, nos enviará al sitio de jorge y cuando usemos nk1 nos enviará a su sitio.

nano /etc/hosts

Agregamos los dominios detrás de localhost y también detrás de la IP por si lo usamos de otro equipo.

127.0.0.1 localhost jorge.nksistemas.com nk1.nksistemas.com
192.168.200.130 jorge.nksistemas.com nk1.nksistemas.com

3.1- Recargar configuraciones de nginx

Podríamos usar systemctl, pero en esta oportunidad vamos a recargar todos los cambios que hicimos con el comando propio del motor.

nginx -s reload

4- Comprobación

Ingresamos a un navegador y vemos el resultado, jugando con jorge.nksistemas.com y nk1.nksistemas.com

- Advertisement -
Jorge
Jorgehttps://nksistemas.com
Soy Jorge, Sr Sysadmin Linux/DevOps/SRE y creador de NKSistemas.com Trabajo con plataformas: Linux, Windows, AWS, GCP, VMware, Helm, kubernetes, Docker, etc.

Related articles