¿Que es un Virtual Host?
Virtual Host es una técnica en la cual mediante un nombre de dominio o dirección Ip se puede configurar varias páginas web en un mismo servidor.
Puedes ver más información en el siguiente enlace Virtual Host.
¿Como crear un Virtual Host en NGINX?
Crear carpeta a la cual accederemos con el Virtul Host
Creamos una carpeta con el nombre que queramos en la ruta /var/www
cd /var/www # Accedemos a la ruta del servidor web
mkdir misitoweb.com # creamos una carpeta con el nombre que queramos
cd misitioweb.com # accedemos a la carpeta creado
Una vez creada y hemos accedido a la carpeta, añadimos la página web a la que queremos acceder a través de Virutal Hosts.
Con esto ya tenemos disponible nuestra web en el servidor a falta de ser configurada con Virtual Hosts
Configuración de Virtual Hosts
- Accede a los archivos de configuración de NGINX en la ubicación /etc/nginx/sites-available para poder configurar todos los sitios webs que quieras.
- Crea un nuevo archivo de configuración para tu sitio web. Una buena practica es nombrarlo como el nombre de tu sitio web, de esta forma siempre sabrás que archivo corresponde a cada sitio web creado.
nano misitioweb.com.conf
- Añade la configuración del virtual Host:
server {
listen 80;
listen [::]:80;
server_name misitioweb.com www.misitioweb.com;
root /var/www/misitioweb.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
- listen 80: Escucha en el puerto 80 (puerto HTTP por defecto) IPv4
- listen [::]:80: Escucha en el puerto 80 IPv6
- server_name: Define los dominios que responderán a este Virtual Host
- root: Especifica la ruta directorio raiz de los archivos de tu sitio web
- index: Indica el archivo que se mostrará por defecto (generalmente index.html)
- Crea un enlace simbolico para habilitar el Virtual Host en /etc/nginx/sites-enabled. En esta carpeta están todos los ficheros de configuración que realmente están habilitados para su funcionamiento.
sudo ln -s /etc/nginx/sites-available/misitioweb.com /etc/nginx/sites-enabled/
Hay que tener en cuenta que tu puedes tener todos los archivos de configuración de Virutal Hosts que quieras en /etc/nginx/sites-available, pero nunca estarán activos a no ser que realices un enlace simbolico a la carpeta /etc/nginx/sites-enabled. De esta forma, puedes ir activando y desactivando Virtual Hosts según tus necesidades.
- Verfica la configuración de NGINX
sudo nginx -t
- Reinicia NGINX para aplicar los cambios realizados
sudo systemctl restart nginx
¡Virtual Host configurado! Ahora tu sitio web estará accesible a través del dominio que se configuró en el Virtual Host.
Te dejo la documentación oficial por si necesitas más información adicional