Lighttpd

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Lighttpd and the translation is 100% complete.
Other languages:


Resources

lighttpd — это быстрый и легкий веб–сервер.

Установка

USE–флаги

USE flags for www-servers/lighttpd Lightweight high-performance web server

brotli Enable output compression via app-arch/brotli (recommended)
dbi Enable dev-db/libdbi (database-independent abstraction layer) support
gnutls Build module for TLS via net-libs/gnutls
kerberos Add kerberos support
ldap Add LDAP support (Lightweight Directory Access Protocol)
lua Enable Lua scripting support
maxminddb Add support for geolocation using dev-libs/libmaxminddb
mbedtls Build module for TLS via net-libs/mbedtls
mmap Use mmap when sendfile is not available
mysql Add mySQL Database support
nettle Use dev-libs/nettle as crypto backend
nss Build module for TLS via Mozilla's Network Security Services
pcre Add support for Perl Compatible Regular Expressions
php Include support for the PHP language
postgres Add support for the postgresql database
rrdtool Enable rrdtool support via mod_rrdtool
sasl Add support for the Simple Authentication and Security Layer
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
sqlite Add support for sqlite - embedded sql database
ssl Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security)
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
unwind Add support for call stack unwinding and function name resolution
verify-sig Verify upstream signatures on distfiles
webdav Enable webdav properties
xattr Add support for extended attributes (filesystem-stored metadata)
zlib Enable output compression via gzip or deflate algorithms from sys-libs/zlib
zstd Enable output compression via Zstandard (app-arch/zstd) algorithm

Emerge

Установите пакет www-servers/lighttpd:

root #emerge --ask www-servers/lighttpd

Конфигурация

lighttpd настраивается при помощи файла /etc/lighttpd/lighttpd.conf. Первый пример показывает доступ к одному сайту, с SSL и без динамических возможностей (таких, как PHP).

ФАЙЛ /etc/lighttpd/lighttpd.confПример 1
$SERVER["socket"] == "192.0.2.10:443" {
  server.name = "www.genfic.com"
  server.document-root = "/var/www/www.genfic.com/"
  server.errorlog = "/var/log/lighttpd/http_error.log"
  accesslog.filename = "/var/log/lighttpd/http_access.log"
  ## Настройка SSL
  ssl.engine = "enable"
  ssl.pemfile = "/etc/ssl/lighttpd-ssl.pem"
  ssl.ca-file = "/etc/ssl/certs/ca-certificate.crt"
  # Опции SSL
  ssl.use-sslv2 = "disable"
  ssl.cipher-list = "TLSv1+HIGH !SSLv2 RC4+MEDIUM !aNULL !eNULL !3DES @STRENGTH"
}

Для включения дополнительных функций настройте нужные модули в /etc/lighttpd/lighttpd.conf. Например, чтобы включить PHP с использованием FastCGI:

ФАЙЛ /etc/lighttpd/lighttpd.confПример 2 — Включение поддержки PHP
...
include "mod_fastcgi.conf"
...

Списки контроля доступа по IP

Этот третий пример показывает, как разрешить доступ к определенному сайту /server-status только определённым IP–адресам. Чтобы разрешить использование статуса сервиса на адресах 198.51.100.1 и 127.0.0.1, выставьте следующие строки в файл lighttpd.conf:

ФАЙЛ /etc/lighttpd/lighttpd.confПример 3 — Включение и настройка списка контроля доступа по IP к странице /server-status
# Включить модель "access"
server.modules = {
  ...
  "mod_access",
}
...
# Глобально включить страницу server-status
status.status-url  = "/server-status"

...
# Разрешить доступ к странице server-status только для следующих IP–хостов
$HTTP["remoteip"] !~ "198.51.100.1|127.0.0.1" {
      url.access-deny = ( "/server-status" )
}

Запуск

Для того, чтобы служба lighttpd запускалась автоматически, она должна быть правильно добавлена в обработчик сервисов. В Gentoo есть две основных системы, которые её содержат: OpenRC и systemd.

OpenRC

В случае с OpenRC используйте команду rc-update:

root #rc-update add lighttpd default

systemd

В случае с systemd используйте команду systemctl:

root #systemctl enable lighttpd.service

Устранение проблем

Проверка конфигурационного файла /etc/lighttpd/lighttpd.conf с помощью lighttpd-angel вернёт код выхода 0, если всё настроено правильно:

root #lighttpd-angel -t -f /etc/lighttpd/lighttpd.conf
Syntax OK
lighttpd-angel.c.140: child (pid=32491) exited normally with exitcode: 0

Если в конфигурационном файле есть ошибки, он выведет их в stdout, как показано в примере ниже:

root #lighttpd-angel -t -f /etc/lighttpd/lighttpd.conf
2012-09-02 12:52:08: (plugin.c.131) Cannot load plugin mod_fastcgi more than once, please fix your config
2012-09-02 12:52:08: (network.c.379) can't bind to port: 192.168.0.1 80 Address already in use 
lighttpd-angel.c.140: child (pid=32139) exited normally with exitcode: 255

Смотрите также

  • Apache — эффективный и расширяемый веб-сервер. Он является одним из самых популярных веб-серверов в Интернете.
  • Nginx — надежный, маленький и очень производительный веб-сервер и обратный прокси-сервер.

Внешние ресурсы