• Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Mi Blog
⋙ Cómo configurar Virtual Hosts en Lighttpd en Ubuntu Server

⋙ Cómo configurar Virtual Hosts en Lighttpd en Ubuntu Server

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.

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:

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

ENJOY!


Raúl Prieto Fernández

Sitio Web: /

Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado.

Escribir un comentario

Información básica sobre Protección de Datos

Responsable: Raúl Prieto Fernández +info

Finalidad: Moderar los comentarios a los artículos publicados en el blog. +info

Legitimación: Consentimiento del interesado +info

Destinatarios: No se comunicarán datos a persona u organización alguna. +info +info

Derechos: Tiene derecho a Acceder, rectificar y suprimir los datos, así como otros derechos, como se explica en la información adicional. +info

Plazo de conservación de los datos: Hasta que no se solicite su supresión por el interesado.

Información adicional: Puede consultar la información adicional y detallada sobre Protección de Datos Personales en mi página web raulprietofernandez.net +info

     

Código de seguridad
Refescar


LOGIN / ENTRAR

BUSCAR EN EL BLOG

TWITTER TIMELINE

Booking.com

ENCUESTA

¿Cual es el mejor Sistema Operativo?

Como es lógico, esta web utiliza cookies propias y de terceros para elaborar información estadística y mostrar publicidad personalizada a través del análisis de tu navegación, conforme a la política de cookies.

  Si continúas navegando, aceptas su uso.