Lighttpd: Instalacion y configuracion del web server
|
Tabla de contenido |
1.- Introduccion
Lighttpd es un servidor web para los sistemas operativos Unix/Linux y Microsoft Windows. Este servidor tambien conocido como Lighty, es una alternativa para el servidor de paginas web Apache.
Esta dise�ado para ser seguro, rapido (muy rapido a decir verdad), compatible con los estandars y flexible a la vez que esta optimizado para entornos en los cuales la velocidad es critica. Su huella de memoria es muy peque�a (en comparacion a otros servidores web), una ligera carga en el CPU y su enfoque en velocidad hacen de lighttpd perfecto para servidores con demasiada carga.
2.- Instalacion sobre Debian
Para instalar lighttpd, tecleamos, como root:
deathbian:~# aptitude install lighttpd
Nota: Sobre Debian Lenny, lighttpd corre con el usuario www-data, y no lighttpd.
3.- Configuracion Basica
La instalacion en Debian nos proporciona los archivos de configuracion y arranque de Lighty, pero si necesitan unos ejemplos
| archivo: /etc/lighttpd/lighttpd.conf |
|
# Debian lighttpd configuration file
#
############ Options you really have to take care of ####################
## modules to load
# mod_access, mod_accesslog and mod_alias are loaded by default
# all other module should only be loaded if neccesary
# - saves some time
# - saves memory
server.modules = (
"mod_access",
"mod_alias",
"mod_accesslog",
"mod_compress",
"mod_fastcgi",
# "mod_rewrite",
# "mod_redirect",
# "mod_status",
# "mod_evhost",
# "mod_usertrack",
# "mod_rrdtool",
# "mod_webdav",
# "mod_expire",
# "mod_flv_streaming",
# "mod_evasive"
)
fastcgi.server = ( ".php" => ((
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/tmp/php.socket"
)))
## a static document-root, for virtual-hosting take look at the
## server.virtual-* options
server.document-root = "/var/www/"
## where to send error-messages to
server.errorlog = "/var/log/lighttpd/error.log"
## files to check for if .../ is requested
index-file.names = ( "index.php", "index.html",
"index.htm", "default.htm",
"index.lighttpd.html" )
## Use the "Content-Type" extended attribute to obtain mime type if possible
# mimetype.use-xattr = "enable"
#### accesslog module
accesslog.filename = "/var/log/lighttpd/access.log"
## deny access the file-extensions
#
# ~ is for backupfiles from vi, emacs, joe, ...
# .inc is often used for code includes which should in general not be part
# of the document-root
url.access-deny = ( "~", ".inc" )
##
# which extensions should not be handle via static-file transfer
#
# .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
######### Options that are good to be but not neccesary to be changed #######
## bind to port (default: 80)
# server.port = 81
## bind to localhost only (default: all interfaces)
## server.bind = "localhost"
## error-handler for status 404
#server.error-handler-404 = "/error-handler.html"
#server.error-handler-404 = "/error-handler.php"
## to help the rc.scripts
server.pid-file = "/var/run/lighttpd.pid"
##
## Format:
|
Con lighty instalado y funcionando correctamente ya no vamos a utilizar Apache 1.3/2.x, asi que mejor lo removemos del sistema (Recuerden sacar backup de los datos y archivos de configuracion de apache), tecleando:
deathbian:~# aptitude remove apache2
3.1.- Configurando las Directivas basicas de lighttpd
- server.document-root = �/var/www/html� Especifica el directorio por default para los sitios.
- server.port = 80 Especifica el puerto por default del servidor.
- server.username = �www-data� Usuario en Debian sobre el cual corre lighty.
- server.groupname = �www-data� Especifica el nombre de usuario y grupo con los cuales arranca/detiene el demonio del servidor lighttpd. Esta es una caracter�stica de seguridad, asi de esta manera no corre con los privilegios de root.
- server.bind = �server-ip-address� Especifica la direccion ip del servidor. Asi mismo tambien es posible ingresar un hostname o localhost.
- server.tag =�lighttpd� Se utiliza para asignar el nombre y el numero de version de lighttpd (default). Esta es una caracteristica de seguridad. Se puede configurar de esta manera:
server.tag ="Mi servidor web v1.0"
Nota: Este es el nombre que reporta el servidor en su cabecera de respuesta. Se puede comprobar utilizando netcraft.
- server.errorlog = �/var/log/lighttpd/error.log� Especifica el archivo de bitacora de error.
- accesslog.filename = �/var/log/lighttpd�
- Especifica el archivo de bitacora de accesos, el cual puede ser utilizado por una aplicacion de estadisticas de visitantes como webalizer.
- index-file.names = ( �index.php�, �index.html� ) Un listado de los archivos por omision en cada directorio.
- server.modules = (
�mod_access�,
�mod_accesslog�,
�mod_fastcgi�,
�mod_rewrite�,
�mod_auth�
): Los modulos anteriormente descritos seran los unicos que cargara lighty. Claro que se pueden agregar mas. De aqui el secreto de la rapidez y bajo consumo de memoria del servidor, veamos una descripcion mas detallada:- mod_access: El modulo de acceso es utilizado para denegar acceso a ciertos archivos.
- mod_accesslog: Utilizado para escribir la bitacora CLF, flexible como apache.
- mod_fastcgi: Soporte FastCGI para perl/PHP etc.
- mod_rewrite: Necesario para re-escribir Url’s SEO compatibles.
- mod_auth: Autenticacion, usualmente para directorios protegidos por contrase�a.
mimetype.assign = (
�.pdf� => �application/pdf�,
�.sig� => �application/pgp-signature�
): Se utiliza para asignar el mapeo del mimetype.
Editemos el archivo /etc/lighttpd/lighttpd.conf y configuren todas las directivas descritas anteriormente.
deathbian:~# vim /etc/lighttpd/lighttpd.conf
4.- Comprobacion del servicio web
Ya que todo esta configurado a nuestras necesidades, grabamos el archivo y arrancamos el demonio lighttpd:
deathbian:~# /etc/init.d/lighttpd start
Si deseamos verificar cuales servicios estan corriendo y en cual puerto, para comprobar el exito de nuestra instalacion de lighttpd, tecleamos:
deathbian:~# netstat -ntulp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 2522/mysqld tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2151/portmap tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2720/lighttpd tcp 0 0 0.0.0.0:113 0.0.0.0:* LISTEN 2742/inetd tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 2927/tcpsvd tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 2720/lighttpd tcp 0 0 127.0.0.1:831 0.0.0.0:* LISTEN 2775/famd tcp6 0 0 :::22 :::* LISTEN 2444/sshd udp 0 0 0.0.0.0:32768 0.0.0.0:* 2432/lwresd udp 0 0 0.0.0.0:32770 0.0.0.0:* 2793/avahi-daemon: udp 0 0 0.0.0.0:517 0.0.0.0:* 2742/inetd udp 0 0 0.0.0.0:518 0.0.0.0:* 2742/inetd udp 0 0 127.0.0.1:921 0.0.0.0:* 2432/lwresd udp 0 0 0.0.0.0:5353 0.0.0.0:* 2793/avahi-daemon: udp 0 0 0.0.0.0:111 0.0.0.0:* 2151/portmap udp6 0 0 :::32769 :::* 2432/lwresd
Ahora vamos al navegador, ya sea firefox o internet explorer y verifiquemos que nuestro nuevo sitio sea accesible via web, tecleamos en la barra de direcciones del navegador
http://localhost/ o http://127.0.0.1/
5. Palabras Finales
Por experiencia personal, les puedo asegurar que el performance de apache es muy inferior frente a lighttp.
Lighty puede ser muy joven (en comparacion a otros sistemas de servidores web), su desarrollo buscar responder a la realidad de nuestros dias, el la cual la web2.0 requiere mayor performance para sitios con miles de visitantes a diario.
En los proximos dias publicaremos temas como;
Optimizando el servidor web lighttpd
- Configurando FastCGI PHP sobre lighttpd
- Configuracion del hosting virtual sobre lighttpd
- Compilar y optimizar los scripts de php sobre lighttpd con php eAccelerator
- Resolver problemas con el cache de eAccelerator
Fortaleciendo la seguridad de Lighttpd
- Seguridad del servidor web extrema: Configurar Lighttpd, php, perl, MySQL con soporte para un entorno de sistema de archivos virtual (chrooted jail)
- Configuracion SSL
- Crear y utilizar nuestro propio certificado SSL en lighttpd
- Proteger con contrase;a los directorios
Configuracion miscelanea de Lighttpd
- Instalar y configurar las estadisticas de Webalizer para lighttpd
- URLs SEO compatibles para wordpress con lighttpd
- Denegar los enlaces directos o el robo de imagenes (leeching) con lighttpd
Monitoreo del servidor Lighttpd
- Monitorear y reiniciar el servicio lighttpd cuando este se cuelge.
Popularity: 26% [?]




on 02 Sep 2007 at 10:48 am # Mini Caso de Estudio: Apache 2 vs Lighttpd 1.x
[...] veamos el howto de Como instalar lighttpd en nuestro servidor [...]
on 08 Sep 2007 at 8:11 pm # leandro
Maestro tenes documentacion para hacerlo andar con perl quiero instalar bugzilla y me ta jorobando un toq.. gracias
[Reply]
on 09 Sep 2007 at 12:39 pm # leandro
Gracias maestro agregue el modulo cgi nomas y ya andavo..
[Reply]
on 14 Sep 2007 at 1:12 pm # fher98
Con perl? decis el Fastcgi/Perl… Pues si no estoy mal el FastCGI ya trae dicho soporte, cuentanos como te va!!
Saludos
[Reply]
on 04 Oct 2007 at 2:23 pm # Pablo
Excelente el artículo. Me sirvió como referencia. Gracias.
[Reply]
on 04 Oct 2007 at 2:28 pm # fher98
@Pablo: Muchas gracias por tu comentario, si hay otro tema que te interese y si podemos ayudarte, con mucho gusto.
[Reply]
on 22 Jan 2008 at 1:51 pm # Poli
Buenas muchachos, tengo el siguiente problemita/problemon
Tengo instalado Ruby on Rails , el tema que he instalado por apt-get el lighttpd pero cuando veo los mod que cargan, ohhh caramba no esta el de mod_fastcgi
Porque pasa esto?? como lo soluciono??, es que si no me tira error y no puedo levantarla para entrar desde afuera
Saludos, Poli
[Reply]
fher98 respondio en February 12th, 2008:
@Poli: En el archivo /etc/lighttpd/lighttpd.conf buscas la opcion de server.modules y descomentas (borrar el #) la linea que se lee “mod_fastcgi”, y asi ya estara habilitado.
Saludos
[Reply]
on 31 Mar 2008 at 2:27 am # darkfrog
Saludos..
cual seria la configuracion adecudad para que cada virtualhost tenga su propio error.log y access.log, con la finalidad de llevar las estadisticas de cada virtual.
la configuracion por default no me permite tener es configruacion!
[Reply]
on 10 Jun 2008 at 3:26 pm # owen
puedes ayudarme a configurar lighttpd para django????
mi caso es:
tengo creado mi proyecto “ooo” en home/ecoia/django_projects/
pero no puedo hacerlocorrer en lighttpd
…owen
[Reply]