2.02.2011

Servidor Web Lighttpd

Luego de dar vida nuevamente a una pc vieja que tenía acumulando polvo mediante una instalación base de Debian Squeeze, decidí hacer algo más con ella.El equipo tiene las maravillosas especificaciones de: AMD Semphron 1200+, 512Mb de RAM, Chipset SiS630 y todo lo demás onboard. Si bien para un escritorio actual puede que no sea mucho, es suficiente para muchos tipos de tareas, mas aún si se presinde de entorno de escritorio ;)

Para hacer pruebas con mi red local, decidí montar un servidor web. Este tenía que ser liviano, estable y rápido. No hay problema si se tiene que sacrificar alguna cosa de avanzada por que no se la requiere (de momento). Así que recordaba servidores "peso ligero" como el confiable Cherokee o Hiawatha pero sin que estos tengan nada de malo, la cantidad de documentación y sitios que los usan activamente me hizo pensarlo dos veces. Si quiero meter mano más a fondo a un servidor prefiero que sea uno de uso comprobado.

Así es como llegue a Lighttpd, un servidor que siendo muy liviano es muy poderoso y es por eso que lo usan sitios como youtube.com, meebo.com, imageshak.us, mininova.org, entre muchos otros, la documentación es muy clara tanto en sus archivos como en la web oficial. No me voy a detener a halbar de sus muchas características ya que me llevaría varias páginas. La página oficial tiene toda información necesaria :)




En este post seré breve indicando como instalé y configuré lighttpd en debian para una red local, conforme vaya avanzado en su uso iré posteando lo que vaya aprendiendo.

como ya se imaginan, la instalación es simple:
aptitude install lighttpd
En caso de que sus repositorios no lo tengan, o si quieren una versión más actual, se puede añadir el repositorio de unstable al sources.list sin que represente un problema para el sistema, las dependencias no generarán problemas con las de testing (si se tiene una instalación base). De ser así como root:
vim /etc/apt/sources.list
y añadimos:
deb http://ftp.debian.org/debian/ unstable main
deb-src http://ftp.debian.org/debian/ unstable main
Salimos del vim ( :wq ) y ejecutamos:
aptitude update && aptitude install lighttpd
Una vez instalado si usamos los repos de unstable, es recomendable comentarlos para evitar la instalación de más paquetes desde ahí.

Ahora para configurar el servicio, editamos el archivo lighttpd.conf:
vim /etc/lighttpd/lighttpd.conf
Las opciones importantes para poner andar el servidor son las siguientes:
server.document-root = "/var/www/www.misitio.com/"
server.username = "www-data"
server.groupname = "www-data"
server.port = 8080
server.bind = "192.168.1.108"
La primera directiva indica el directorio donde se alojan los ficheros del sitio (www.misitio.com). La segunda y tercera directiva indican el usuario y grupo con que corre el servidor (www-data), por defecto es lighttpd pero me ha pasado que tanto en Lenny como en Squeeze, el usuario y grupo www-data ya existen y con estos el servidor corre perfectamente. La cuarta directiva indica el puerto en el que corre el servicio (8080). Y la quinta directiva determina la dirección en la que se ejecuta el servidor (192.168.1.108) podiendo también indicarse localhost o un host determinado.

Otra directiva puede ser la que indica el servidor usado y su versión, pero podemos poner lo que queramos ;)
server.tag = "mi servidor web v1.0"
Con esto y dejando todo lo demás como viene por defecto ya tendremos el servidor funcional para hacer las pruebas. Para asegurarnos que el archivo de configuración este correcto ejecutamos:
lighttpd -t -f /etc/lighttpd/lighttpd.conf
Si nos indica que está correcto, continuamos con la inicialización del servicio:
/etc/init-d/lighttpd start
Esto habrá levantado el servidor, para comprobar que esta activo y usando el puerto que le indicamos, podemos hacer:
netstat -ntulp | grep lighttpd
Lo que nos tendrá que devolver un par de líneas con la información del proceso, algo como:
tcp        0      0 192.168.1.108:8080   0.0.0.0:*  LISTEN    1419/lighttpd  
tcp6      0      0 :::80                            :::*           LISTEN      1419/lighttpd
Bastaría como colocar un archivo index.html en la ubicación que le indicamos en server.document-root y en la misma máquina o cualquiera de la red local apuntamos en el navegador a:
192.168.1.108:8080
Y nos cargará el index.html que colocamos anteriormente.
Listo! Con eso ya podemos empezar a jugar con el servidor web :)

Como siempre, espero haya sido de utilidad a más de uno XD

Saludos!