Publicado el 28 de Marzo del 2018
675 visualizaciones desde el 28 de Marzo del 2018
346,5 KB
8 paginas
Creado hace 17a (31/08/2006)
ANURIX Servicios Informáticos
Introducción a LightTPD
Introducción a LightTPD
Introducción
Con este documento Anurix pretende acercar a un administrador de sistemas UNIX al servidor web lighttpd como
una alternativa fiable respecto a otros servidores http.
¿Que es LightTPD?
Lighttpd es un servidor http o https, seguro, rápido que respeta estándares y consume muy pocos recursos, todo ello
con un código limpio y elegante.
Es ideal para ser usado en entornos donde la carga es máxima, se requieren respuestas rápidas y alta escalabilidad.
Anurix lo utiliza como único servidor web para contenido dinámico, generalmente sobre estaciones x86 o sparc64
con sistemas NetBSD.
Algunas características básicas destacables que posee Lighttpd son:
Virtual Hosting incluso por medio de MySQL.
CGI, SCGI, FastCGI.
Soporte de varios lenguajes de programación como PHP o Ruby a través de CGI y FastCGI.
Admite certificados SSL y por lo tanto puede servir https.
Autentificación con htpasswd, LDAP o MySQL.
Tiene un módulo de reescritura y de redirección de URLs.
•
•
•
•
•
•
• Genera estadísticas mediante rrdtool.
•
•
•
Permite Módulos Externos.
Acepta Webdav.
Acepta SSI (Server Side Includes).
Estas son características que cualquier servidor http medianamente decente debería poseer.
Algunas de las opciones que hacen más interesantes a lighttpd desde el punto de vista de Anurix es la posibilidad
de elección del Eventhandler, que nos permite optimizar al máximo las respuestas de los sockets de nuestro
servidor http. También creemos que una buena cualidad frente a otros servidores es la posiblidad del balanceo de
carga en los servicios FCGI, con los que por ejemplo podemos distribuir las peticiones PHP entre diferentes
máquinas.
Un FCGI o FastCGI es una alternativa al clásico CGI. La principal diferencia con CGI es que ejecuta un proceso
persistente por cada programa que se ejecuta en vez de un proceso por cada conexión de un cliente al servidor.
Lighttpd usa este interfaz para ejecutar aplicaciones escritas en PHP, Ruby o PERL.
www.anurix.com
1
ANURIX Servicios Informáticos
Introducción a LightTPD
Lighttpd se puede usar como servidor http único o combinado con otros. Se puede usar para liberar carga de otros
servidores más lentos ya que, por ejemplo, durante el envío de ficheros grandes suele ser mucho más rápido que en
el resto de servidores, aunque ésto lo explicaremos más adelante.
Comparado con otros Servidores.
En la web de lighttpd tenemos estadísticas comparando Lighttpd con otros servidores web
(http://www.lighttpd.net/benchmark/)
En principio lighttpd se muestra hasta 2 o 3 veces más rápido que Apache y con un consumo de memoria
muchísimo más bajo que el resto, sobretodo comparándolo con Apache. Ésto se debe en parte al uso de prefork por
Apache, que lo hace mucho más lento, sobretodo en situaciones de carga extremas, llevádole a colgarse o a quedar
inutilizado durante algún tiempo e incluso utilizar recursos del servidor de forma descomunal. Es por ello que, desde
hace tiempo, desde Anurix aconsejamos siempre LightTTPD a nuestros clientes.
En la mayoría de comparativas podemos ver claramente que donde gana Lighttpd es cuando el número de
conexiones concurrentes es realmente elevado o cuando se envían ficheros grandes. En estas situaciones no tiene
rival, ni tan sólo thttpd, un servidor mucho menos complejo, le hace sombra.
Cambiar de Apache a Lighttpd no va a ser la solución definitiva para los problemas de velocidad sirviendo PHP
combinado con SQL, ya que la mayoria de veces el cuello de botella suele estar en que el código PHP o SQL no son
totalmente óptimos. Eso si, Lighttpd ayudará sin duda mucho a que una aplicación funcione mucho más rápido sobre
todo en cargas altas , por eso en Anurix lo recomendamos en este tipo de situaciones frente a Apache u otros
servidores http.
Configuración básica lighttpd
A continuación se detalla una configuración básica de Lighttpd sobre NetBSD.
#Configuracion Lighttpd Basica lighttpd.conf
server.modules = (
"mod_rewrite",
"mod_redirect",
"mod_alias",
"mod_access",
# "mod_trigger_b4_dl", < Permite establecer
acciones al iniciar una descarga
"mod_auth",
# "mod_status", < Muestra el estado del server en
una web generada
# "mod_setenv", < Permite setar variables de
entorno
"mod_fastcgi",
# "mod_proxy",< Modulo de proxy
"mod_simple_vhost",
# "mod_evhost", < Opciones extendidas de vhost
"mod_userdir",
"mod_cgi",
"mod_compress",
www.anurix.com
2
ANURIX Servicios Informáticos
Introducción a LightTPD
# "mod_ssi", < Server side includes
# "mod_usertrack",
# "mod_expire",
# "mod_secdownload", < Permite securizar ficheros
por medio del servidor y aplicacion
# "mod_rrdtool", <Stats con rrdtool
"mod_accesslog" )
#Crea un nuevo socket que escucha por el puerto 443 con certifiacion
SSL
$SERVER["socket"] == "xyz.xyz.xyz.xyz:443" {
ssl.engine = "enable"
ssl.pemfile = "/usr/pkg/etc/lighttpd/server.pem"
server.name = "ejemplo.com"
server.documentroot = "/usr/pkg/share/httpd/htdocs/"
}
## Documento principal
server.documentroot = "/usr/pkg/share/httpd/htdocs/"
##Log de error
server.errorlog = "/var/log/lighttpd.error.log"
#Log de acceso
accesslog.filename = "/var/log/lighttpd/access.log"
#Archivos que pueden ser indice y en que orden
indexfile.names = ( "index.php", "index.html",
"index.htm", "default.htm" )
#Tipos de archivo mime
mimetype.assign = (
".pdf" => "application/pdf",
".sig" => "application/pgpsignature",
".spl" => "application/futuresplash",
".class" => "application/octetstream",
".ps" => "application/postscript",
".torrent" => "application/xbittorrent",
".dvi" => "application/xdvi",
".gz" => "application/xgzip",
".pac" => "application/xnsproxyautoconfig",
".swf" => "application/xshockwaveflash",
".tar.gz" => "application/xtgz",
".tgz" => "application/xtgz",
".tar" => "application/xtar",
".zip" => "application/zip",
".mp3" => "audio/mpeg",
".m3u" => "audio/xmpegurl",
".wma" => "audio/xmswma",
".wax" => "audio/xmswax",
".ogg" => "application/ogg",
".wav" => "audio/xwav",
".gif" => "image/gif",
".jpg" => "image/jpeg",
".jpeg" => "image/jpeg",
www.anurix.com
3
ANURIX Servicios Informáticos
Introducción a LightTPD
".png" => "image/png",
".xbm" => "image/xxbitmap",
".xpm" => "image/xxpixmap",
".xwd" => "image/xxwindowdump",
".css" => "text/css",
".html" => "text/html encoding=utf8",
".htm" => "text/html encoding=utf8",
".js" => "text/javascript",
".asc" => "text/plain",
".c" => "text/plain",
".cpp" => "text/plain",
".log" => "text/plain",
".conf" => "text/plain",
".text" => "text/plain",
".txt" => "text/plain",
".dtd" => "text/xml",
".xml" => "text/xml",
".mpeg" => "video/mpeg",
".mpg" => "video/mpeg",
".mov" => "video/quicktime",
".qt" => "video/quicktime",
".avi" => "video/xmsvideo",
".asf" => "video/xmsasf",
".asx" => "video/xmsasf",
".wmv" => "video/xmswmv",
".bz2" => "application/xbzip",
".tbz" => "application/xbzipcompressedtar",
".tar.bz2" => "application/xbzipcompressedtar"
)
## Deniega tipos de archivo
url.accessdeny = ( "~", ".inc" )
##
# Extensiones de fichero que no seran tomadas como un fichero
estatico.
#
# Normalmente las manejadas por FCGI o CGI
staticfile.excludeextensions = ( ".php", ".pl", ".fcgi",".cgi" )
## Puerto por defecto
server.port = 80
## Fichero Error 404
#server.errorhandler404 = "/errorhandler.html"
## Crea fichero PID para Lighttpd
#server.pidfile = "/var/run/lighttpd.pid"
#Directorios de Usuario
userdir.path = "public_html"
userdir.basepath = "/home/"
userdir.excludeuser = ("root")
###### virtual hosts
www.anurix.com
4
ANURIX Servicios Informáticos
Introducción a LightTPD
simplevhost.serverroot = "/usr/pkg/share/httpd"
simplevhost.defaulthost = "localhost"
simplevhost.documentroot = "/htdocs"
include "vhosts.conf"
## change uid to <uid> (default: don't care)
server.username = "www"
## change uid to <uid> (default: don't care)
server.groupname = "www"
#Configuracion Basica para fcgi de PHP
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"host" => "127.0.0.1",
"port" => 1026,
"binpath" => "/usr/pkg/libexec/cgibin/php"
)
)
)
#### CGI module
cgi.assign = ( ".pl" => "/usr/pkg/bin/perl",
".cgi" => "/usr/pkg/bin/perl" )
Configuracion Vhosts y htaccess.
### vhost.conf
Vhost simple
$HTTP["host"] == “Ejemplo.com" {
server.documentroot = "/usr/pkg/share/httpd/htdocs"
server.errorlo
Comentarios de: Introduccion a lightTPD (0)
No hay comentarios