Mi Blog
Cómo configurar Virtual Hosts en Lighttpd en Ubuntu Server

Cómo configurar Virtual Hosts en Lighttpd en Ubuntu Server

(4 votos)

Aparte del servidor web Apache, existen otros servidores Web no menos conocidos en el mercado actual. Esta vez os presento la configuración de Virtual Hosts sobre el servidor Web gratuito y libre lighttpd. Al igual que en el tutorial de Apache, os enseñaré como compartir los recursos de una misma máquina para servir contenido a varios dominios con un único servidor Web. El tutorial solo pretende enseñar los primeros pasos para que luego vosotros lo adaptéis a vuestras necesidades.

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 ¡DESCÚBRELOS! 🔥

 

 

lighttpd (pronunciado lighty) es un servidor web diseñado para ser rápido, seguro, flexible, y fiel a los estándares.

Está optimizado para entornos donde la velocidad es muy importante, y por eso consume menos CPU y memoria RAM que otros servidores. Por todo lo que ofrece, lighttpd es apropiado para cualquier servidor que tenga problemas de carga.

lighttpd es software libre y se distribuye bajo la licencia BSD. Funciona en GNU/Linux y UNIX de forma oficial. Para Microsoft Windows actualmente hay una distribución conocida como Lighttpd For Windows mantenida por Kevin Worthington.

Características:

  • Virtual hosting (alojar varios dominios en la misma IP)
  • CGI, SCGI y FastCGI
  • Soporte para PHP, Ruby, Python y otros
  • Entorno chroot
  • Cifrado SSL
  • Compresión (gzip, bzip2, ...)
  • Autenticación (LDAP, htpasswd, otros)
  • Server Side Includes
  • Consumo de memoria constante
  • Redirecciones HTTP, y reescrituras de URL
  • Puede enviar partes de un fichero (rangos)
  • Puede usar select() o poll()
  • También permite otros sistema de notificación de eventos como kqueue y epoll
  • Hace estadísticas mediante RRDtool
  • Muestra un listado de ficheros cuando se entra a un directorio sin index.html
  • Redirección condicional
  • Permite módulos externos
  • Cache Meta Language
  • Acepta parte de WebDAV

Espero que os guste!

¿Qué es un Virtual Host?

Imaginemos uno de los miles de proveedores de Hosting que hay en el mundo. Cada hosting tiene N clientes y esos clientes quieren tener su Web alojada en los servidores del proveedor. Los Virtual Hosts posibilitan a los servidores Web de gestionar N páginas Webs con dominios diferentes pero con una única IP. Por ejemplo, si configuramos un servidor Lighttpd con 2 Virtual Hosts www.ejemplo1.com y www.ejemplo2.com, podemos alojar dichas páginas en un único servidor con la IP 80.33.120.201.

Y te preguntarás, ¿cuando pido una de esas 2 páginas, como sabe el servidor a que página quiero acceder si la IP resuelta por el DNS es la misma? Bien, la solución son los Virtual Host. ¡Lo has adivinado! En los paquetes TCP que se envían al servidor Web, se especifica el destino al que queremos acceder y es el servidor Web quien analiza esas peticiones y nos autoriza para acceder al contenido de www.ejemplo1.com ó de www.ejemplo2.com.

Cada dominio que configuremos, tendrá asociado un directorio diferente en el cual irá almacenado su contenido. Podemos crear tantos Virtual Hosts como queramos, siempre en función de la carga que soporte el Servidor Web y de la configuración Lighttpd que hagamos. Se podría decir que "no hay limites".

 

 

1.- ELEMENTOS UTILIZADOS EN ESTE TUTORIAL

  • [Servidor Web] - GNU/Linux Ubuntu Server 16.04
  • [Cliente Web] - Windows 7

 

 

2.- INSTALACIÓN DEL SERVIDOR WEB LIGHTTPD

Lo primero, como es habitual en todos los tutoriales, es instalar el paquete base, en nuestro caso será lighttpd.

Instalaremos el paquete con usuario root ó con un usuario con permisos de sudo y actualizaremos previamente nuestros repositorios:

# apt-get update
# apt-get install lighttpd

 

 

3.- ESTRUCTURA Y PERMISOS DE DIRECTORIOS

Guardaremos los ficheros de los 2 dominios bajo el directorio principal /var/www/html/ donde crearemos los 2 directorios para los 2 dominios. Realmente podemos almacenar los ficheros donde queramos, pero lo más habitual es hacerlo en /var/www/. Crearemos 2 directorios con el nombre de nuestros dominios (puede ser cualquier nombre). Yo he optado por www.tumadrefumapuros.com y www.siemprecierraslosbares.com, hay que ser original :D

Crearemos 2 directorios, uno para cada uno de los dominios de ejemplo:

# mkdir -p /var/www/html/www.tumadrefumapuros.com
# mkdir -p /var/www/html/www.siemprecierraslosbares.com

Debemos asegurarnos que los directorios tienen como propietario www-data y grupo www-data. Por ejemplo en Red Hat estos usuarios son Apache y Apache, cuidado en este paso:

# chown -R www-data.www-data /var/www/html/www.tumadrefumapuros.com
# chown -R www-data.www-data /var/www/html/www.siemprecierraslosbares.com

Para asegurarnos que nadie, excepto el propietario www-data pueda escribir en el (los) directorios, cambiaremos los permisos de ambos directorios:

# chmod -R 0755 /var/www/html/www.tumadrefumapuros.com
# chmod -R 0755 /var/www/html/www.siemprecierraslosbares.com

Dentro de cada uno de los directorios (public_html), podemos crear una página Web diferente para visitarla a posteriori. Una forma muy sencilla de hacerlo es de la siguiente forma:

# echo "Bienvenidos a www.tumadrefumapuros.com" > /var/www/html/www.tumadrefumapuros.com/index.html
# echo "Bienvenidos a www.siemprecierraslosbares.com" > /var/www/html/www.siemprecierraslosbares.com/index.html

Como puede verse, las direcciones para entrar a los 2 sites son bastante "feas": http://192.168.145.212/www.tumadrefumapuros.com/ y http://192.168.145.212/www.cierrassiemprelosbares.com/:

VirtualHost LighttpdVisualizando las 2 páginas sin virtualhost

4.- CAMBIOS EN EL FICHERO PRINCIPAL DE CONFIGURACIÓN

El fichero principal de configuración de lighttpd es /etc/lighttpd/lighttpd.conf. En él, podemos especificar todos los Virtual Hosts que necesitemos. Podemos añadir todos los Virtual Hosts a este fichero de configuración ó podemos hacerlo en ficheros separados. Mi recomendación es utilizar un fichero de configuración diferente para cada uno de los Virtual Hosts. Con esto conseguimos que no se toque código que no debemos en el fichero principal de configuración. Los ficheros Virtual Hosts se ubicarán en un directorio llamado /etc/lighttpd/vhosts.d/ (podemos usar otro directorio diferente) y debemos añadir la siguiente línea al final del fichero /etc/lighttpd/lighttpd.conf:

include_shell "cat /etc/lighhtpd/vhosts.d/*.conf"

Con esto conseguiremos que al final del fichero se incluya el contenido de todos los ficheros de Virtual Hosts que guardemos en /etc/lighttpd/vhosts.d/

 

 

5.- CONFIGURACIÓN DE LOS VIRTUALHOSTS

Los archivos Virtual Host contienen la información necesaria para que funcione correctamente y le indican al servidor Web Lighttpd como deben responder a las peticiones realizadas a dicho(s) dominio(s).

Crearemos el fichero /etc/lighttpd/vhosts.d/www.tumadrefumapuros.com.conf con el siguiente contenido:

$HTTP["host"] =~ "(^|\.)tumadrefumapuros\.com$" {
server.document-root = "/var/www/html/www.tumadrefumapuros.com"
server.errorlog = "/var/log/lighttpd/www.tumadrefumapuros.com-error.log"
accesslog.filename = "/var/log/lighttpd/www.tumadredumapuros.com-access.log"
}

Y el otro dominio lo guardaremos en el fichero /etc/lighttpd/vhosts.d/www.siemprecierraslosbares.com.conf y tendrá el siguiente contenido:

$HTTP["host"] =~ "(^|\.)siemprecierraslosbares\.com$" {
server.document-root = "/var/www/html/www.siemprecierraslosbares.com"
server.errorlog = "/var/www/html/www.siemprecierraslosbares.com-error.log"
accesslog.filename = "/var/log/lighttpd/www.siemprecierraslosbares.com-access.log"
}

Para comprobar si la sintaxis está correcta, ejecutaremos:

# lighttpd -t -f /etc/lighttpd/lighttpd.conf

Reiniciaremos lighttpd para que se apliquen los cambios:

# /etc/init.d/lighttpd restart

 

 

6.- COMPROBACIÓN DE LOS VIRTUALHOSTS SIN SERVIDOR DNS

Para probar si nuestro servidor está reconociendo los 2 VirtualHost nuevos y no tenemos un servidor de DNS que nos resuelva dichos dominios, podemos crear 2 nuevas entradas fijas de forma manual en el fichero "hosts" de nuestro equipo. Para el caso de los Windows el fichero es c:\Windows\System32\Drivers\etc\lmhosts y en los GNU/Linux /etc/hosts.

Deberemos añadir las lineas siguientes:

192.168.145.212 tumadrefumapuros.com
192.168.145.212 www.tumadrefumapuros.com
192.168.145.212 siemprecierraslosbares.com
192.168.145.212 www.siemprecierraslosbares.com

La dirección IP de mi servidor Web es 192.168.145.212 (cambia esa IP por la de tu servidor Web)

Virtualhost Lighttpd

Virtualhost funcionando

 

 

7.- COMPROBACIÓN DE LOS VIRTUALHOSTS CON UN SERVIDOR DNS

Para configurar un servidor DNS con los 2 nuevos dominios, hay que instalar el servidor Bind9 y añadir las entradas de los 2 Virtual Host. En la siguiente URL puedes encontrar un manual de como instalar tu propio servidor de DNS:

https://www.raulprietofernandez.net/blog/gnu-linux/como-instalar-un-servidor-de-dns-en-gnu-linux-debian

ENJOY!


Acerca de Mi

RPF

Soy Ingeniero Téc. Industrial Mecánico, Administrador de Sistemas Informáticos, Desarrollador de Aplicaciones Informaticas Web, Técnico Superior en PRL, Experto en Energías Renovables... y trabajo actualmente como Senior DevOPS en HP SCDS.

Contactar conmigo

Dirección: León, España

E-Mail: Contactar

Web: https://www.raulprietofernandez.net

Skype: raul.lnx

APÚNTATE GRATIS

VIP RPF
Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más... ¡Muy Pronto!