22 jun. 2009

Montar un servidor web en 10 minutos: lighttpd

Un servidor web es un programa que nos permitirá mostrar nuestras propias páginas web al mundo sin necesidad de contratar un servicio externo, comprobar nuestras creaciones antes de publicarlas, acceder a los archivos locales desde un PC remoto...

Tradicionalmente los sistemas GNU/Linux suelen usar Apache como servidor web, sin embargo existe otra opción más interesante: Lighttpd

Las principales características de este servidor son:
  1. Extremadamente ligero (reduce la carga de la CPU)
  2. Seguro y flexible
  3. Rápido (mucho más rápido que Apache segun estadísiticas no oficiales)
  4. Soporta Virtual Hosts, SSL, IPv6, compresión gzip y bzip
  5. Web 2.0
  6. Lenguajes HTML, CGI, PHP, Ruby
  7. ...

Todas estas características hacen de Lighttpd la elección ideal para cualquier entorno ya que está especialmente diseñado para ser rápido, sencillo y ligero. Servicios tan importantes como YouTube o Wikipedia usan este servidor web.


  • Instalación
Al estar disponible en los repositorios oficiales de Ubuntu su instalación es así de sencilla:
$ sudo aptitude install lighttpd

El proceso de instalación lanzará el servicio lighttpd y creará el directorio /var/www/ donde colocaremos las páginas web que queramos publicar.

Nota: En caso de tener un firewall instalado no olvides que deberás abrir el puerto 80 (si no sabes como hacerlo consulta el artículo Administración del firewall con firestarter), además si conectas a internet a través de un router y pretendes dar acceso al servidor de ficheros desde el exterior deberás redireccionar el puerto 80 en la configuración del router (revisa la documentación de tu modelo de router si no sabes como hacerlo).

Podemos comprobar que el proceso ha funcionado apuntando nuestro navegador favorito a la dirección http://localhost o http://127.0.0.1, en caso de acceder desde un ordenador remoto deberemos usar nuestra IP privada (si conectamos desde dentro de una red local) o nuestra IP pública (si conectamos desde Internet), el navegador mostrará una página de ejemplo como esta:

Firefox mostrando la página de ejemplo preinstalada


  • Archivos
Es importante tener claro donde va cada archivo, aqui os pongo una pequeña lista con los más usuales:
  1. /var/www/ localización de nuestras páginas web
  2. /etc/lighttpd/ archivos de configuración del servicio
  3. /var/log/lighttpd/ registros y mensajes de error

  • Configuración
La configuración se realiza modificando el archivo /etc/lighttpd/lighttpd.conf que está comentado para facilitar su edición.

Según sus propios creadores la configuración funcional más sencilla sería algo así:
server.document-root = "/var/www/"

server.port = 80

mimetype.assign = (
".html" => "text/html",
".txt" => "text/plain",
".jpg" => "image/jpeg",
".png" => "image/png"
)


La configuración por defecto del paquete en Ubuntu es válida para cualquier servidor sencillo, pero por si necesitáis más control aquí os dejo un tutorial de configuración: http://redmine.lighttpd.net/projects/lighttpd/wiki/TutorialConfiguration


  • Más información
http://www.lighttpd.net/
Lighttpd: Instalacion y configuracion del web server
Guía Ubuntu: Servidor Web lighttpd
Wikipedia: Lighttpd


  • Artículos relacionados
Administración del firewall con firestarter
Montar un servidor de archivos en 10 minutos: vsftpd

10 comentarios :

juancarlospaco dijo...

Cual soporta HTML 5 ?

Anónimo dijo...

HTML 5 debe ser soportado por el navegador web que utilizas, no por el servidor web.

Por cierto, para capturas de pantallas puedes utilizar ALT + Print Screen en Gnome para que sólo capture la ventana activa.

Saludos.

Cartas a Ubuntu dijo...

Alguien me dice, si podría enlazar este servidor web con una base de datos mysql, o no lo soporta?

Me gustaría instalarle wordpress.

Muy buen post

fosco_ dijo...

@Cartas a Ubuntu: no lo he probado tan a fondo, pero la documentación de lighttpd es muy extensa, quizá esto te ayude:
http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModMySQLVhost

Cartas a Ubuntu dijo...

ya lo tengo instalado en local, lo que pasa es, que no puedo sacarlo fuera de la red LAN. Aunque ya daré con la solución para poderlo ver desde fuera.

De momento lo intenté con no-ip y no lo he podido configurar, creo que debería redireccionar el puerto 80 a la ip local donde está el server.

Ya te contaré si lo puedo sacar fuera.

Saludos y gracias por el enlace

JOSE MANUEL dijo...

Eres una máquina. El blog sigue siendo un referente, es impresionante el trabajo que estas realizando.
Mis más sinceras felicitaciones.

TassLehof.

fosco_ dijo...

@TassLehof: cuanto tiempo xaval, donde te metes? se te echa de menos por el chat.Un saludo.

Luis Manuel dijo...

Hola me pide nombre de usuario y contraseña a la hora de ver el servidor desde fuera pero le pongo el nombre de usuario de mi pc y su contraseña y no puede entrar al servidor web lighttpd que instalé que se hace en estos caso?

fosco_ dijo...

El servicio web en principio no pide usuario, si te lo está pidiendo lo más seguro es q no tengas redirigidos los puertos en el router y se piensa q quieres entrar a administrar el propio router.

Soluciona eso leyendo el manual del router.

Christian dijo...

Antes que nada quiero comentar que es muy buen aporte este.

mi pregunta es: tendra las condiciones necesarias para poder ser instalado joomla ??

--php
--mysql
--perl (opcional)

gracias por sus comentarios y animo, sigan comentado

muchas gracias !!!