Lighttpd es un servidor web para los sistemas operativos Unix, Linux y Microsoft Windows. La instalacion de este servidor tambien conocido como Lighty, es una alternativa muy flexible para el servidor de paginas web Apache o Internet Information Services.
Este web server diseñado para ser seguro, rapido (muy rapido a decir verdad), compatible con los estandares y flexible a la vez 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; como apache o IIS), una ligera carga en el CPU y su enfoque en velocidad hacen de lighttpd perfecto para servidores con demasiada carga.
La instalacion del web server en Linux es muy sencilla. Para instalar lighttpd en linux, tecleamos como root:
deathbian:~# aptitude install lighttpd
Nota: Sobre Debian Lenny, lighttpd corre con el usuario www-data, y no lighttpd.
La instalacion del web server 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: .html ## -> ..../status-404.html for 'File not found' #server.errorfile-prefix = "/var/www/" ## virtual directory listings dir-listing.encoding = "utf-8" server.dir-listing = "enable" ## send unhandled HTTP-header headers to error-log #debug.dump-unknown-headers = "enable" ### only root can use these options # # chroot() to directory (default: no chroot() ) #server.chroot = "/" ## change uid to (default: don't care) server.username = "www-data" ## change uid to (default: don't care) server.groupname = "www-data" #### compress module compress.cache-dir = "/var/cache/lighttpd/compress/" compress.filetype = ("text/plain", "text/html", "application/x-javascript", "text/css") #### status module # status.status-url = "/server-status" # status.config-url = "/server-config" #### url handling modules (rewrite, redirect, access) # url.rewrite = ( "^/$" => "/server-status" ) # url.redirect = ( "^/wishlist/(.+)" => "http://www.123.org/$1" ) # # define a pattern for the host url finding # %% => % sign # %0 => domain name + tld # %1 => tld # %2 => domain name without tld # %3 => subdomain 1 name # %4 => subdomain 2 name # # evhost.path-pattern = "/home/storage/dev/www/%3/htdocs/" #### expire module # expire.url = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes") #### rrdtool # rrdtool.binary = "/usr/bin/rrdtool" # rrdtool.db-name = "/var/www/lighttpd.rrd" #### handle Debian Policy Manual, Section 11.5. urls #### and by default allow them only from localhost $HTTP["remoteip"] == "127.0.0.1" { alias.url += ( "/doc/" => "/usr/share/doc/", "/images/" => "/usr/share/images/" ) $HTTP["url"] =~ "^/doc/|^/images/" { dir-listing.activate = "enable" } } #### variable usage: ## variable name without "." is auto prefixed by "var." and becomes "var.bar" #bar = 1 #var.mystring = "foo" ## integer add #bar += 1 ## string concat, with integer cast as string, result: "www.foo1.com" #server.name = "www." + mystring + var.bar + ".com" ## array merge #index-file.names = (foo + ".php") + index-file.names #index-file.names += (foo + ".php") #### external configuration files ## mimetype mapping include_shell "/usr/share/lighttpd/create-mime.assign.pl" ## load enabled configuration files, ## read /etc/lighttpd/conf-available/README first include_shell "/usr/share/lighttpd/include-conf-enabled.pl" $SERVER["socket"] == ":443" { ssl.engine = "enable" ssl.pemfile = "/etc/ssl/certs/lighttpd.pem" } |
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
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.
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
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
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
Fortaleciendo la seguridad de Lighttpd
Configuracion miscelanea de Lighttpd
Monitoreo del servidor Lighttpd
En el ámbito de la informática y la cadena de bloques, el conocimiento teórico a…
El emergente dominio de las criptomonedas ha cautivado la imaginación colectiva por su potencial para…
En el siempre evolucionante mundo de las criptomonedas, el capital de riesgo (VC) ha encontrado…
?? Resumen video : Gareth Soloway Bitcoin, prepárate para lo que viene Introducción El mercado…
En marzo de 2023, el mundo financiero se vio sacudido por el repentino colapso de…
A medida que Bitcoin continúa ganando popularidad y reconocimiento, aumenta la necesidad de escalabilidad y…