Здравствуйте дорогие друзья, сегодняшний пост будет посвящен «серверной оптимизации». А точнее, избавляемся от Apache,  от этого тяжеловесного веб сервера и заменяем его на легковесный Lighthttpd.


Lighthttpd

Как я писал в прошлых статьях, у меня «взик» на скорость загрузки сайта. Да и в свете последних событий, когда некоторые поисковики (точнее Google) начали смотреть на скорость загрузки сайта и это стало не маловажным фактором ранжирования поисковой выдачи, и по этому я занялся оптимизацией своего блога и нашего сервера.

После долгих оптимизации темы моего WordPress блога и CMS (надеюсь когда нибудь переведу блог на более легковесную CMS) и настройки кэширования и передачи всей информации статикой, меня все равно не удовлетворяла скорость загрузки сайта (1,8 сек, а при большой посещаемости 2,8-3,9 сек) и я решил уже заняться серверной оптимизацией. Как же мне надоел этот  Apache, я понимаю что это универсальный инструмент, его используют многие сайты, он легок в настройках и очень известный (бла-бла-бла), но за этой простотой и универсальностью кроется большая проблема, он очень тормознутый, когда перезагружаем апач он просто летает, а после он начинает долго думать перед тем как отдать сайт. (мы не говорим про оптимизацию Апача). В общем вместо, того что бы оптимизировать Apache я решил избавиться от этого «индейца» в пользу Lighthttpd.

Lighthttpd (Лайти) — это легковесный веб сервер, он  разрабатывался изначально с учетом на быстроту и защищенность, автор этого чудо (Ян Кнешке) стремился создать такой веб сервер, который мог выдержать 10 тысяч соединений одновременно. (Пост проплачен автором веб сервера :D).

Lighthttpd используют в своих проектах такие гиганты как Google, Яндекс, The Pirate Bay, Википедия. Надеюсь теперь вы поняли почему мой выбор пал на него. Ну вот, давайте от слов перейдем к делу.

Значит у нас на VPS крутиться Ubuntu и эта инструкция будет именно для него, но я думаю что вы сможете установить Лайти и на других Дистрибутивах, Оськах. (настройки-то одни). Приступим:

Устанавливаем Lighthttpd,  php5-cgi (я предполагаю что у вас установлены все php, mysql пакеты, nano — текстовый редактор) :

sudo apt-get install lighttpd php5-cgi nano

После установки, теперь нам нужно сделать так что бы php5 работало с Lighttpd через CGI-интерфейс необходимо отредактировать два файла:

  1. Файл настроек php5 — /etc/php5/cgi/php.ini
  2. Файл конфигурации Lighttpd — /etc/lighttpd/lighttpd.conf

В файле настроек php5 /etc/php5/cgi/php.ini необходимо вставить директиву cgi.fix_pathinfo = 1 в конце файла.

sudo nano /etc/php5/cgi/php.ini

….
cgi.fix_pathinfo = 1

Закройте (Ctrl + X) и сохраните файл.

Теперь открываем lighttpd.conf добавляем mod_fastcgi которая подключит модуль CGI после перезапуска сервера.

sudo nano /etc/lighttpd/lighttpd.conf

server.modules              = (
"mod_access",
"mod_alias",
"mod_accesslog",
"mod_compress",
"mod_rewrite",
"mod_fastcgi", <- подключаем этот модуль (эту строку не копировать)

Если у вас устраивают настройки по умолчанию, оставьте все как есть. (я оставил все по дефолту, пока что ;) ).

Не торопитесь закрывать этот файл, теперь нам нужно указать Лайти, где находятся файлы вашего сайта, для этого в конце файла на строек Лайти lighttpd.conf  дописываем это:

$HTTP["host"] =~ "(www.)?mindwork.su" {
server.document-root = "/var/www/public_html/"
$HTTP["url"] =~ "^/download/" {
dir-listing.activate = "enable"
}
}

Конечно же, вместо моего сайта, пишите адрес своего сайта и изменяете директорию где хранятся файлы вашего сайта. Теперь закрываете файл (Ctrl + X) и сохраняете настройки.

Ну вот в принципе все у нас настроено, теперь нам необходимо, как написано на сайте разработчиков, включить FastCGI конфигурацию, файл которой расположен по адресу: /etc/lighttpd/conf-available/10-fastcgi.conf делается это следующей командой:

sudo lighttpd-enable-mod fastcgi

отключаем Апач если он у вас стоит:

sudo /etc/init.d/apache2 stop

и запускаем Lighthttpd

sudo /etc/init.d/lighttpd force-reload

Сайт должен у вас заработать. Сайты расположенные у нас на сервере, работали как положено, но вот мой блог (бедный мой блог, он так настрадался от моих экспериментов). Работал не как надо, так как у меня было установлено ЧПУ (человеко понятный урл). А так как в Лайти не понимает .htaccess (ему он нафиг не нужен, он же апачевский) пришлось искать решение. Не долго погуглив и прочитав официальную документацию Lighthttpd нашел «конструкцию» которая позволяет понимать Лайти ЧПУ моего сайта.

В общем если у вас проблемы с ЧПУ в Lighthttpd дописываете в lighttpd.conf несколько строк, в том месте где мы указывали в каких директориях хранятся файлы сайта, привожу полный код с настройками директории:

sudo nano /etc/lighttpd/lighttpd.conf

...

$HTTP["host"] =~ "(www.)?mindwork.su" {

url.rewrite-once = (
"^/(wp-.+).*/?" => "$0",
"^/(sitemap.xml)" => "$0",
"^/(xmlrpc.php)" => "$0",
"^/keyword/([A-Za-z_0-9\-]+)/?$" => "/index.php?keyword=$1",
"^/.*?(\?.*)?$" => "/index.php$1"
)

server.document-root = "/var/www/public_html/"
$HTTP["url"] =~ "^/download/" {
dir-listing.activate = "enable"
}
}

Закрываете и сохраняете файл и перезапускаете Лайти:

sudo /etc/init.d/lighttpd force-reload

После этого у вас все должно заработать, эта код предназначен только для CMS WordPress. Но я думаю, что вы сможете написать/найти/подобрать и для своей CMS.

Ну вот и все, надеюсь статья будет вам полезна, в будущем будут посты про оптимизацию Lighthttpd и дальнейшую оптимизацию сервера.

Установка Lighthttpd и настройка ЧПУ
3 оценок, Средняя оценка: 5 из 5

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *