Был сервер с виртуалхостами на обычной связке Apache,PHP,MySQL.
Увы с увеличением количества виртуалхостов, Apache стал загружать систему под 100%. Но от таких вкусных вещей как mod_rewrite отказываться не хотелось.
В этой статье покажу как можно сделать связку Lighttpd + Apache. Весь статический контент сайтов (картинки, видео, музыка и т.д.) будет раздавать Lighttpd (с чем web-сервер справляется на отлично, youtube.com, wikipedia.org и др. тому пример), всю динамику (php, cgi скрипты) будем перенаправлять к Apache.

В этой статье я НЕ буду описывать как установить Apache,php,mysql в одно единое. С настройкой можете ознакомиться в этом разделе по след статьям:
Apache2 + php5 + mod_fastcgi
Настройка хостинга под apache + PHP + MySQL

Установка и настройка Lighttpd.

# cd /usr/ports/www/lighttpd
# make install clean
# cd /usr/local/etc/
# cp ./lighttpd.conf.sample ./lighttpd.conf
# ee ./lighttpd.conf

Редактируем файл /usr/local/etc/lighttpd.conf. Так как Lighttpd будет обрабатывать только статику, настроек по минимуму:

server.modules = (
“mod_rewrite”,
“mod_redirect”,
“mod_alias”,
“mod_access”,
“mod_proxy”,
“mod_accesslog” )

Общая настройка Lighttpd описана в этой статье.
Добавим в конце файла последнее:

$HTTP["url"] =~ “^.*(html|php|cgi|/|\?|\?.*)$” {
proxy.server = (“” => ( (
“host” => “127.0.0.1″,
“port” => 8080 ) ) )
}

Все скрипты, оканчивающиея на .php,.cgi отправляем на Apache.

В конфиге Apache httpd.conf нужно всего лишь изменить следующие строки:

Listen 127.0.0.1:8080
Port 8080

На этом настройка связки закончена.
Не забудьте добавить в /etc/rc.conf: lighttpd_enable=”YES”

Если вы используете несколько виртуальных хостов в httpd.conf, то их нужно описать и в lighttpd.conf.
На пример, домен – www.domain.com
Добавим в lighttpd.conf:

$HTTP["host"] =~ “(^|\.)domain\.com$” {
server.document-root = “/usr/home/user/public_html/domain.com”
accesslog.filename = “/usr/home/user/log/access.log”
server.errorlog = “/usr/home/user/log/error.log”
}

Accesslog и Errorlog можно обрабатывать через WebAlizer, Awstats и др.
Несколько очень полезных ссылок:
1. Lighttpd and Joomla – A How To
2. Howto: Lighttpd web server setting up virtual hosting

Если есть желание поиграться с оптимизацией отдачи файлов через Lighttpd, можете поэкспериментировать со следующими настройками в lighttpd.conf:

server.max-worker=50
server.max-keep-alive-requests=250
server.max-keep-alive-idle=120
server.max-read-idle =120

Взято с lissyara.su