Автор Тема: apache+lighttpd  (Прочитано 1536 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн qwertyuser

  • самый главный админ
  • Administrator
  • Hero Member
  • *****
  • Сообщений: 563
  • Karma: +65535/-0
  • кармадрочер
    • Просмотр профиля
    • ufoserver.org
apache+lighttpd
« : Июнь 17, 2015, 02:20:31 pm »
Здравствуйте уважаемые пользователи хабра. Читаю хабр вот уже несколько лет, но к сожалению тут очень мало написано про хороший веб сервер Lighttpd.

Очень много людей используют связку Apache+Nginx, однако я считаю что lighttpd забыт незаслуженно. Предлагаю вам связку apache+lighttpd.

У lighttpd есть свой модуль (mod_fastcgi) который позволяет использовать php, однако речь в данной статье пойдет именно что бы использовать в качестве интерпритатора php скриптов гиганта веб серверов — Apache.

Установка:

Подразумевается что у вас уже установлены и Apache и Lighttpd

1) Первое что нам надо сделать это что бы Apache слушал скажем 81 порт. Для этого в конфигурационном файле мы меняем
Listen 80
на
Listen 127.0.0.1:81

а так же ставим KeepAlive в off

Далее перезагружаем Apache.

2) Теперь отредактируем конфигурационный файл lighttpd (lighttpd.conf)
Снимаем комментарий с модулей mod_proxy и mod_alias.
Далее редактируем свой хост что бы он выглядел примерно так

$HTTP["host"] == "site.ru" {
alias.url = (
"/static/" => "/var/www/static.site.ru/"
)

$HTTP["url"] !~ "^/(static)/" {
proxy.server = ( "" => (("host" => "127.0.0.1", "port" => 81 )) )
}

}
Принцип такой. Если введенный url не заканчивается на /static/ то apache обрабатывает файлы на 81 порту иначе это статические файлы которые обрабатывает уже lighttpd.

Размышления:

Я прекрасно понимаю что Nginx это очень мощный веб сервер, имеющий огромный функционал, но lighttpd это очень быстрый, легкий (как видно из названия) веб сервер, простой в настройке. Его использование в связке с apache сможет не только снять нагрузку на сервер, но и сделать работу сайта намного быстрее. Помимо всего lighttpd имеет ещё много разных модулей. Я не призываю вас отказываться от nginx, я лишь сказал что помимо него есть ещё и другие замечательные веб сервера.

продолжение
все запросы на файлы  html php cgi и файлы начинающиеся  с точки передавать на порт 8080 на котором будет висеть апачь

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


и поиграться с настройками лайта
server.max-worker=50
server.max-keep-alive-requests=250
server.max-keep-alive-idle=120
server.max-read-idle =120


пример htaccess и его (пип)ог в лайти
htaccess
AddDefaultCharset utf-8
RewriteEngine On
RewriteBase /
RewriteRule ^word1-word2-([.a-z0-9_-]*)?\.html$ result.php?url=$1 [QSA,L,NC]
RewriteRule ^sitemap.xml$ sitemap.php [QSA,L,NC]
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
RewriteCond ^%{THE_REQUEST} result.php
RewriteRule .* - [R=404,L]

лайти
# Убираем субдомен www из урла методом редиректа:
$HTTP["host"] =~ "^www\.(.*)" {
url.redirect = ( "^/(.*)" => "http://%1/$1" )
}

# Реврайты:
url.rewrite-once = (
"^/word1-word2-([.a-z0-9_-]+)\.html$" => "/result.php?url=$1",
"^/sitemap\.xml$" => "/sitemap.php",
)
по вопросам размещения Ваших сайтов на этом сервере пишите info@qwertyuser.ru