Blog (107)
Komentarze (2.3k)
Recenzje (0)
@webnullcz. 1 | Lighttpd - stawiamy lekki serwer WWW

cz. 1 | Lighttpd - stawiamy lekki serwer WWW

02.02.2011 22:05

Witam. Zapewne wszyscy wiecie jak bardzo zasobożerny jest Apache w połączeniu z MySQL, gdy jednak chcemy postawić stronę internetową na troszkę słabszym sprzęcie z pomocą przychodzi jednak Lighttpd który funkcjonalnością praktycznie dorównuje Apache.

Ostatnio zakupiłem tani terminal z procesorem VIA Nehemiah @ 1 GHZ, pamięcią RAM 128 mb DDR I, USB 2.0 i postawiłem na nim właśnie lighttpd.

377744

Sam system Debian GNU/Linux na takim urządzeniu używa ok. 10 mb pamięci RAM, lighttpd jakieś 2‑5 mb, serwer OpenSSH ok. 1‑2 mb i wychodzi nie więcej niż 20 mb. Ciekawe prawda? Apache zjadłby tutaj ponad 200 mb - tak strzelając na oko.

Tak więc przedstawiłem Wam główne powody dla których zachęcam do używania Lighttpd jako serwera WWW, a teraz przejdę do opisu jak postawić ten malutki serwerek WWW na naszej maszynie.

1. Instalacja pakietów w systemie

Zapewne w repozytorium Waszej ulubionej dystrybucji znajdziecie pakiet o nazwie lighttpd lub podobnej, ja mogę pokazać jakie są pakiety dostępne pod Debianem i Gentoo:

*  www-servers/lighttpd
      Latest version available: 1.4.28
      Latest version installed: 1.4.28
      Size of files: 626 kB
      Homepage:      http://www.lighttpd.net/
      Description:   Lightweight high-performance web server
      License:       BSD
webnull-oneill% apt-cache search lighttpd
lighttpd-doc - Documentation for lighttpd
lighttpd-mod-cml - Cache meta language module for lighttpd
lighttpd-mod-magnet - Control the request handling module for lighttpd
lighttpd-mod-mysql-vhost - MySQL-based virtual host configuration for lighttpd
lighttpd-mod-trigger-b4-dl - Anti-deep-linking module for lighttpd
lighttpd-mod-webdav - WebDAV module for lighttpd
lighttpd - A fast webserver with minimal memory footprint

Tak więc dla Debiana, Ubuntu, Mepis, Linux Mint:

apt-get install lighttpd

Warto dodać, że w Debianowych dystrybucjach lighttpd sam doda się do listy demonów które startują z systemem - aby to wyłączyć polecam narzędzie rcconf dostępne w repozytorium.

Gentoo: Przed instalacją warto wybrać flagi kompilacyjne a następnie dodać je do /etc/portage/package.use

emerge lighttpd

Polecam takie flagi:

bzip2 fam gdbm ipv6 ldap pcre php ssl mysql -doc -libev -lua -memcache -minimal  -rrdtool -test -webdav -xattr

Start demona razem z systemem:

rc-update add lighttpd default

Arch Linux:

pacman -S lighttpd

Start demona razem z systemem: W /etc/rc.conf do zmiennej DAEMONS dodać "lighttpd".

Fedora, Red Hat, CentOS:

yum install lighttpd

Start demona razem z systemem: ? - użytkownicy jednego z tych systemów muszą poszukać sobie, nie za bardzo używałem którego z tych systemów dlatego bzdur pisać nie będę.

2. Edycja plików konfiguracyjnych

Lighttpd posiada jeden prosty plik konfiguracyjny który może przyłączać inne pliki konfiguracyjne - ten główny znajduje się w /etc/lighttpd/lighttpd.conf

Lista modułów lighttpd:


server.modules = (
#    "mod_rewrite", # Przyjazne adresy URL znane z Apache
#    "mod_redirect",
#    "mod_alias",
      "mod_fastcgi", # potrzebny do używania PHP czy Perla
    "mod_access", # Kontrola dostępu do katalogów
#    "mod_cml",
#    "mod_trigger_b4_dl",
#    "mod_auth",
#    "mod_status",
#    "mod_setenv",
#    "mod_proxy",
#    "mod_simple_vhost",
#    "mod_evhost",
#    "mod_userdir",
#    "mod_compress",
#    "mod_ssi",
#    "mod_usertrack",
#    "mod_expire",
#    "mod_secdownload",
#    "mod_rrdtool",
#    "mod_webdav",
    "mod_accesslog" # Loguje wszystkie próby dostępu do serwera
)
# }}}

Aby wyłączyć dany moduł należy go zakomentować czyli postawić znak "#" na początku linii z modułem.

Omówię kilka istotnych bądź ciekawych zmiennych konfiguracyjnych:


server.document-root = var.basedir + "/htdocs" # gdzie znajdują się pliki publicznie udostępniane
server.follow-symlink = "enable" # czy serwer ma podążać za dowiązaniami symbolicznymi?
server.port          = 80 # port nasłuchiwania serwera, jeżeli mamy zamiar postawić kilka serwerów na jednym adresie IP to należy każdy postawić na innym porcie aby wszystkie były widoczne z zewnątrz
static-file.exclude-extensions = (".php", ".pl", ".cgi", ".fcgi") # rozszerzenia plików które nie powinny być wysyłane jako zwykłe pliki np. tekstowe
dir-listing.activate      = "enable" # listowanie zawartości katalogów w przeglądarce
dir-listing.hide-dotfiles = "enable" # ukrywa ukryte pliki ;-)

3. Blokujemy dostęp nie proszonym gościom

Aby zabezpieczyć katalog lub plik przed otwarciem przez niepowołane osoby należy dodać do /etc/lighttpd/lighttpd.conf kilka linii w których należy wskazać katalog oraz dozwolony lub niedozwolony adres IP.


 $HTTP["remoteip"] !~ "192.168.1." { # "!" - zaprzeczenie, jeżeli adres IP nie jest podobny do tego
  $HTTP["url"] =~ "^/oneill/" { # to dla katalogu /oneill/ na serwerze
    url.access-deny = ( "" ) # dostęp zostanie zablokowany
  }
}

W następnej części postaram się opisać jak zainstalować PHP, MySQL czy SQLite a także jak tworzyć adresy przyjazne adresy URL.

Wybrane dla Ciebie
Komentarze (29)