Optimierung Lighttpd

Apache, Lighttpd, nginx, Cherokee
pennywize
Posts: 59
Joined: 2006-07-22 13:39

Optimierung Lighttpd

Post by pennywize » 2007-09-29 13:41

Guten Tag,

für die Erstellung eines Wiki für meine Firma wurde mir ein kleiner Rootserver mit geringen 256MB Ram zur Verfügung gestellt.
Statt Apache2 installiere ich Lighttpd 1.4.18, dazu läuft noch MySQL und Postfix. Es werden max 30-40 gleichzeitige Zugriffe auf den Server stattfinden.
Nun suche ich nach Optimierungsmöglichkeiten und bin der Hoffnung ihr könnt mir ein paar Ideen/Tipps mit auf den Weg geben.
Auf MySQL könnte zur Not noch verzichtet werden, da "dokuwiki" auch ohne DB Backend auskommt und die Useraccounts für Postfix nicht unbedingt in einer MySQL stehen müssen, möchte diesen nach Möglichkeit trotzdem beibehalten. Es wäre auch nett, wenn mir jemand außerdem noch einen kleinen Hinweis zu meinen mod_rewrite rules für dokuwiki etwas schreiben könnte.

Rufe ich eine Seite auf, sieht es in der URL so aus:



Hier ist meine momentane Konfiguration des Lighttpd:

Code: Select all

server.username = "www-data"
server.groupname = "www-data"
server.document-root = "/var/www/htdocs/"
server.pid-file = "/var/run/lighttpd.pid"
server.errorlog = "/var/log/lighttpd/error.log"
accesslog.filename = "/var/log/lighttpd/access.log"
server.stat-cache-engine = "simple"
server.event-handler = "linux-sysepoll"
server.name = "$domain"
server.max-fds = 2048
server.follow-symlink = "enable"
server.dir-listing = "disable"
server.max-keep-alive-idle = 10
compress.cache-dir = "/tmp/"
compress.filetype = ("text/plain", "text/html")
server.modules = (
  "mod_access",
  "mod_status",
  "mod_alias",
  "mod_auth",
  "mod_evasive",
  "mod_fastcgi",
  "mod_rewrite",
  "mod_compress",
  "mod_accesslog"
)
server.indexfiles = (
  "index.xhtml",
  "index.html",
  "index.htm",
  "index.php",
)
mimetype.assign = (
 ".pdf"     => "application/pdf",
 ".sig"     => "application/pgp-signature",
 ".spl"     => "application/futuresplash",
 ".class"   => "application/octet-stream",
 ".ps"      => "application/postscript",
 ".torrent" => "application/x-bittorrent",
 ".dvi"     => "application/x-dvi",
 ".pac"     => "application/x-ns-proxy-autoconfig",
 ".swf"     => "application/x-shockwave-flash",
 ".tgz"     => "application/x-tgz",
 ".mp3"     => "audio/mpeg",
 ".m3u"     => "audio/x-mpegurl",
 ".wma"     => "audio/x-ms-wma",
 ".wax"     => "audio/x-ms-wax",
 ".ogg"     => "application/ogg",
 ".wav"     => "audio/x-wav",
 ".xbm"     => "image/x-xbitmap",
 ".xpm"     => "image/x-xpixmap",
 ".xwd"     => "image/x-xwindowdump",
 ".asc"     => "text/plain",
 ".c"       => "text/plain",
 ".h"       => "text/plain",
 ".cc"      => "text/plain",
 ".cpp"     => "text/plain",
 ".hh"      => "text/plain",
 ".hpp"     => "text/plain",
 ".conf"    => "text/plain",
 ".log"     => "text/plain",
 ".text"    => "text/plain",
 ".txt"     => "text/plain",
 ".diff"    => "text/plain",
 ".patch"   => "text/plain",
 ".ebuild"  => "text/plain",
 ".eclass"  => "text/plain",
 ".rtf"     => "application/rtf",
 ".bmp"     => "image/bmp",
 ".tif"     => "image/tiff",
 ".tiff"    => "image/tiff",
 ".ico"     => "image/x-icon",
 ".mpeg"    => "video/mpeg",
 ".mpg"     => "video/mpeg",
 ".mov"     => "video/quicktime",
 ".qt"      => "video/quicktime",
 ".avi"     => "video/x-msvideo",
 ".asf"     => "video/x-ms-asf",
 ".asx"     => "video/x-ms-asf",
 ".wmv"     => "video/x-ms-wmv",
 ".tbz"     => "application/x-bzip-compressed-tar",
 ".tar.bz2" => "application/x-bzip-compressed-tar",
 ".tar.gz"  => "application/x-tgz",
 ".bz2"     => "application/x-bzip",
 ".gz"      => "application/x-gzip",
 ".tar"     => "application/x-tar",
 ".zip"     => "application/zip",
 ".jpeg"    => "image/jpeg",
 ".jpg"     => "image/jpeg",
 ".png"     => "image/png",
 ".gif"     => "image/gif",
 ".xhtml"   => "text/html",
 ".html"    => "text/html",
 ".htm"     => "text/html",
 ".dtd"     => "text/xml",
 ".xml"     => "text/xml",
 ".css"     => "text/css",
 ".js"      => "text/javascript",
 ".deb"     => "application/x-deb",
 ".php"     => "application/x-httpd-php",
 ""         => "text/plain",
)
static-file.exclude-extensions = (
 ".fcgi",
 ".php",
)
url.access-deny = (
 "~",
 ".ini",
 ".inc",
 ".cfg",
 ".tpl",
 ".bak",
 ".dist",
 ".orig",
 ".htaccess",
 ".htpasswd",
 ".example",
 ".sample",
 ".lang",
)
fastcgi.server = ( ".php" =>
 ( "localhost" =>
 (
 "socket" => "/tmp/php-fastcgi.socket",
 "bin-path" => "/usr/bin/php5-cgi"
        )
  )
)
    url.rewrite = (
      "^" + "/wiki/" + "lib/.*$" => "$0",
      "^" + "/wiki/" + "_media/(.*)"          => "/wiki/" + "lib/exe/fetch.php?media=$1",
      "^" + "/wiki/" + "_detail/(.*)"         => "/wiki/" + "lib/exe/detail.php?media=$1",
      "^" + "/wiki/" + "_export/([^/]+)/(.*)" => "/wiki/" + "doku.php?do=export_$1&id=$2",
      "^" + "/wiki/" + "doku.php.*"           => "$0",
      "^" + "/wiki/" + "(.*)?(.*)"           => "/wiki/" + "doku.php?id=$1&$2",
      "^" + "/wiki/" + "(.*)"                 => "/wiki/" + "doku.php?id=$1",
    )


Vielen Dank für Eure Hilfe,

Jasmin

User avatar
Joe User
Project Manager
Project Manager
Posts: 11137
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Optimierung Lighttpd

Post by Joe User » 2007-09-29 17:40

Die lighttpd.conf sieht schon brauchbar aus, lediglich auf mod_compress würde ich bei 256MB RAM verzichten. Hier mal unsere DokuWiki-Rewrites:

Code: Select all

url.rewrite-once = (
"^/wiki(/|index.php)?$"                                               => "/wiki/doku.php",
"^/wiki/lib/(.*)/?$"                                                  => "/wiki/lib/$1",
"^/wiki/_media/(.*)??(.*)$"                                          => "/wiki/lib/exe/fetch.php?media=$1&$2",
"^/wiki/_media/(.*)$"                                                 => "/wiki/lib/exe/fetch.php?media=$1",
"^/wiki/_detail/(.*)??(.*)$"                                         => "/wiki/lib/exe/detail.php?media=$1&$2",
"^/wiki/_detail/(.*)?$"                                               => "/wiki/lib/exe/detail.php?media=$1",
"^/wiki/_export/([^/]+)/(.*)$"                                        => "/wiki/doku.php?do=export_$1&id=$2",
"^/wiki/(?!doku.php|feed.php|robots.txt|sitemap.xml.gz)(.*)?(.*)/?$" => "/wiki/doku.php?id=$1&$2",
"^/wiki/(?!doku.php|feed.php|robots.txt|sitemap.xml.gz)(.*)/?$"       => "/wiki/doku.php?id=$1",
)

pennywize
Posts: 59
Joined: 2006-07-22 13:39

Re: Optimierung Lighttpd

Post by pennywize » 2007-09-29 19:48

Joe User wrote:Die lighttpd.conf sieht schon brauchbar aus, lediglich auf mod_compress würde ich bei 256MB RAM verzichten. Hier mal unsere DokuWiki-Rewrites:

Code: Select all

url.rewrite-once = (
"^/wiki(/|index.php)?$"                                               => "/wiki/doku.php",
"^/wiki/lib/(.*)/?$"                                                  => "/wiki/lib/$1",
"^/wiki/_media/(.*)??(.*)$"                                          => "/wiki/lib/exe/fetch.php?media=$1&$2",
"^/wiki/_media/(.*)$"                                                 => "/wiki/lib/exe/fetch.php?media=$1",
"^/wiki/_detail/(.*)??(.*)$"                                         => "/wiki/lib/exe/detail.php?media=$1&$2",
"^/wiki/_detail/(.*)?$"                                               => "/wiki/lib/exe/detail.php?media=$1",
"^/wiki/_export/([^/]+)/(.*)$"                                        => "/wiki/doku.php?do=export_$1&id=$2",
"^/wiki/(?!doku.php|feed.php|robots.txt|sitemap.xml.gz)(.*)?(.*)/?$" => "/wiki/doku.php?id=$1&$2",
"^/wiki/(?!doku.php|feed.php|robots.txt|sitemap.xml.gz)(.*)/?$"       => "/wiki/doku.php?id=$1",
)


Vielen Dank für die Tipps und ReWrite Rules :)
Ich hatte bei Tests schon festgestellt, daß mehr RAM als eingeplant geschluckt wurde, meinst das mod_compress dafür verantwortlich war?
Nehme es raus und werde alles mal beobachten.

Danke nochmals,

Jasmin

mccab99
Posts: 43
Joined: 2006-02-20 08:41
Location: Cloppenburg

Re: Optimierung Lighttpd

Post by mccab99 » 2007-10-01 11:23

Wenn du in MySQL InnoDB rauswirfst (vorausgesetzt, du brauchst es nicht), gibt es auch noch einmal ein paar MB RAM gratis dazu.

Ansonsten ist bei mir immer MySQL der Flaschenhals gewesen. Bei leistungssschwachen Rechnern und überschaubaren Datenbanken fahre ich mit SQLlite besser.

Gruß,

Maik