Lighttpd (Español)

Lighttpd es un servidor web "seguro, rápido, compatible y muy flexible" que ha sido optimizado para ambientes de alto rendimiento. Consume muy pocos recursos comparado con otros servidores web y se ocupa de balancear el CPU. Sus características avanzadas (FastCGI, CGI, Auth, entre otras) hacen que lighttpd sea el servidor web perfecto para todos aquellos que sufren problemas de balanceo."

Instalación

Instale el paquete lighttpd.

Configuración

Sistema básico

EL archivo de configuración de lighttpd es: /etc/lighttpd/lighttpd.conf. Por defecto debe producir una pagina de prueba.

Para comprobar su lighttpd.conf por bugs se puede usar el siguiente comando, que ayuda a encontrar errores en la configuración rápidamente:

$ lighttpd -t -f /etc/lighttpd/lighttpd.conf

Otra prueba mucho mas estricta puede ser ejecutada con:

$ lighttpd -tt -f /etc/lighttpd/lighttpd.conf

El archivo de la configuración por defecto especifica que el directorio /srv/http/ es la base de los documentos servidos. Para comprobar la instalación, cree un archivo de prueba:

/srv/http/index.html
Hola Mundo!

Después active la unidad lighttpd.service y en su navegador diríjase a localhost, donde debería ver la pagina de prueba.

Archivos de configuración con ejemplos están disponibles en /usr/share/doc/lighttpd/.

Historial básico

Lighttpd puede escribir archivos con historiales de acceso y de errores. Para habilitar ambas opciones edite el archivo /etc/lighttpd/lighttpd.conf:

server.modules += (
   "mod_access",
   "mod_accesslog",
)

server.errorlog   = "/var/log/lighttpd/errores.log"
accesslog.filename = "/var/log/lighttpd/accesos.log"

Habilitar https con SSL

Advertencia: Usuarios que planean implementar SSL/TLS, deben saber que algunas variaciones e implementaciones son vulnerables a ataques. Vease el articulo de OpenSSL para mas detalles.
Sugerencia:
Auto firmado

Certificados de SSL que son auto firmados pueden ser generados, asumiendo el paquete openssl esta instalado, de la siguiente manera:

# mkdir /etc/lighttpd/certs
# openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -sha256 -keyout /etc/lighttpd/certs/server.pem -out /etc/lighttpd/certs/server.pem
# chmod 600 /etc/lighttpd/certs/server.pem

Modifique el archivo /etc/lighttpd/lighttpd.conf para habilitar https:

$SERVER["socket"] == ":443" {
    ssl.engine                  = "enable" 
    ssl.pemfile                 = "/etc/lighttpd/certs/server.pem" 
 }
Let's Encrypt

Alternativamente, pero muy recomendado, puede generar un certificado firmado por Let's Encrypt. Despues de seguir las instrucciones de la generacion manual de un certificado, combine los archivos y en uno:

# cat /etc/letsencrypt/live/su-dominio/{privkey.pem,fullchain.pem} > /etc/letsencrypt/live/su-dominio/combined.pem

Edite su archivo de configuracion principal /etc/lighttpd/lighttpd.conf agregando:

$SERVER["socket"] == ":443" {
    ssl.engine                  = "enable" 
    ssl.pemfile                 = "/etc/letsencrypt/live/su-dominio/combined.pem"
    ssl.ca-file                 = "/etc/letsencrypt/live/su-dominio/fullchain.pem"
}

Si recibe un error empty reply from server al intentar , intente agregar:

ssl.openssl.ssl-conf-cmd = ("Protocol" => "-ALL, TLSv1.2") 

a la configuracion anterios. Esto tambien puede arreglar el caso qeu Firefox no pueda abrir la version HTTPs de su sitio.

CGI

Interfaz de entrada común (Common Gateway Interface, CGI en ingles) funciona automáticamente con lighttpd, solo es necesario habilitar el modulo, incluir el archivo de configuración y asegurarse que su lenguaje interprete esta instalado. Por ejemplo o ruby.

Cree el archivo /etc/lighttpd/conf.d/cgi.conf y agregue lo siguiente:

server.modules += ( "mod_cgi" )

cgi.assign                 = ( ".pl"  => "/usr/bin/perl",
                               ".cgi" => "/usr/bin/perl",
                               ".rb"  => "/usr/bin/ruby",
                               ".erb" => "/usr/bin/eruby",
                               ".py"  => "/usr/bin/python",
                               ".php" => "/usr/bin/php-cgi" )

index-file.names           += ( "index.pl",   "default.pl",
                               "index.rb",   "default.rb",
                               "index.erb",  "default.erb",
                               "index.py",   "default.py",
                               "index.php",  "default.php" )

Para scripts de PHP debe asegurarse que la siguiente opción se encuentra en :

cgi.fix_pathinfo = 1

En su archivo de configuración principal /etc/lighttpd/lighttpd.conf agregue:

include "conf.d/cgi.conf"

FastCGI

Instale el paquete . Ahora ya tiene lighttpd con soporte para fcgi. Si esto era todo lo que se deseaba.

Si se desea expandir con Ruby on Rails, PHP o Python deben leer las secciones siguientes.

En primer lugar copie la configuración que provee lighttpd de a .

Agregue lo siguiente al archivo de configuración :

server.modules += ( "mod_fastcgi" )

#server.indexfiles += ( "dispatch.fcgi" )      # Opcion obsoleta
index-file.names += ( "dispatch.fcgi" )        # dispatch.fcgi si Rails se especifica

server.error-handler-404   = "/dispatch.fcgi"  # tambien
fastcgi.server = (
    ".fcgi" => (
      "localhost" => ( 
        "socket" => "/run/lighttpd/rails-fastcgi.sock",
        "bin-path" => "/path/to/rails/application/public/dispatch.fcgi"
      )
    )
)

Incluya esta linea en su archivo de configuracion principal /etc/lighttpd/lighttpd.conf:

include "conf.d/fastcgi.conf"
Uso php-cgi

Instale y , véase también PHP y LAMP.

Asegúrese que php-cgi funciona ejecutando el comando php-cgi --version

PHP 5.4.3 (cgi-fcgi) (built: May  8 2012 17:10:17)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

Si tiene un resultado similar, quiere decir que PHP fue instalado correctamente.

Cree un archivo de configuración:

Asegúrese que lighttpd use el archivo anterior agregando la siguiente linea a su archivo de configuración principal:

Recargue lighttpd.

Nota:
  • Si tiene errores de forma Archivo de entrada no encontrado (No input file found), puede tener varias explicaciones. Véase estas preguntas frecuentes por mas información.
  • Asegúrese que ningún otro modulo, por ejemplo mod_cgi, intentara manejar la extensión .php.
Uso php-fpm

En versiones recientes de lighttps no hay inicio adaptivo. Para manejo dinámico de procesos PHP es posible instalar y luego activar e iniciar automáticamente la unidad .

En el archivo agregue:

server.modules += ( "mod_fastcgi" )

index-file.names += ( "index.php" ) 

fastcgi.server = (
    ".php" => (
      "localhost" => ( 
        "socket" => "/run/php-fpm/php-fpm.sock",
        "broken-scriptfilename" => "enable"
      ))
)

Python FastCGI

Instale y configure FastCGI, véase la sección #FastCGI.

Instale [enlace roto: package not found].

Configure:

fastcgi.server = (
    ".py" =>
    (
        "python-fcgi" =>
        (
        "socket" => "/run/lighttpd/fastcgi.python.socket",
         "bin-path" => "test.py",
         "check-local" => "disable",
         "max-procs" => 1,
        )
    )
)

Ponga el archivo test.py en el directorio raíz de su servidor y no olvide permitir su ejecución: .

Gracias a firecat53 por su explicación

Indicador del nombre del servidor

Para usar SNI (por sus siglas en ingles) simplemente ponga las directivas del archivo ssl.pemfile en los condicionales del servidor. Un ssl.pemfile es requerido por defecto.

$HTTP["host"] == "www.example.org" {
    ssl.pemfile = "/etc/lighttpd/certs/www.example.org.pem" 
}

$HTTP["host"] == "mail.example.org" {
    ssl.pemfile = "/etc/lighttpd/certs/mail.example.org.pem" 
}

Ruby on Rails

Si se desea usar Ruby on Rails, instale los paquetes ruby y .

Para documentación de como usar Ruby on Rails por favor consulta http://rubyonrails.org.

Re-direccionamiento de http a https

Agregue la linea en su archivo de configuración principal /etc/lighttpd/lighttpd.conf:

server.modules += ( "mod_redirect" )

$SERVER["socket"] == ":80" {
  $HTTP["host"] =~ "example.org" {
    url.redirect = ( "^/(.*)" => "https://example.org/$1" )
    server.name                 = "example.org" 
  }
}

$SERVER["socket"] == ":443" {
  ssl.engine = "enable" 
  ssl.pemfile = "/etc/lighttpd/certs/server.pem" 
  server.document-root = "..." 
}

Para el re-direccionamiento de todos los sitios a su equivalente seguro, use la siguiente configuración en lugar de la conexión al socket 80:

Para el re-direccionamiento de parte de los sitios, por ejemplo phpmyadmin:

Compresión

La compresión de los archivos que el servidor provee a los visitantes puede ser una gran ventaja al reducir el ancho de banda requerido para la carga de la pagina web:

En el archivo principal /etc/lighttpd/lighttpd.conf agregue:

var.cache_dir           = "/var/cache/lighttpd"

Cree un directorio para los archivos comprimidos:

# mkdir /var/cache/lighttpd/compress
# chown http:http /var/cache/lighttpd/compress

Copie el ejemplo del archivo de compresión:

# mkdir /etc/lighttpd/conf.d
# cp /usr/share/doc/lighttpd/config/conf.d/compress.conf /etc/lighttpd/conf.d/

Agregue la siguiente linea al archivo principal de configuración /etc/lighttpd/lighttpd.conf:

include "conf.d/compress.conf"

También es posible seleccionar el tipo de contenido que se puede comprimir, modifique en la opción :

compress.filetype     = ("text/plain", "text/html", "text/javascript", "text/css", "text/xml")

Véase también

gollark: This is at least more democracy™ then them stalking everyone and not doing so.
gollark: Gereoge.
gollark: Simply replace any instance of "apioform" with you saying "[REDACTED]", but really obviously cut.
gollark: TuxN for all N in **R** IRL.
gollark: Would people be interested in osmarks internet radio™ but it plays random beeping noises™?
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.