зменшення завантаження Apache за допомогою Lighttpd
Ваш Apache-сервер все ще загинається під вагою потокового мультимедіа-контенту? Тоді Lighttpd, любовно званий в народі «Lighty», йде до вас!
Завдяки тому, що він використовує менше ресурсів для обробки кожного запиту, ніж Apache, він може обслуговувати весь статичний контент швидше. Також він надає переваги інтерфейсу FastCGI, який здійснює балансування навантаження.
Однією із зручних особливостей Lighttpd є те, що його можна запустити «за» Apache за допомогою модуля Apache proxy. Це означає, що для його запуску вам не буде потрібно ще один фізичний сервер.
Для більшості дистрибутивів можна рекомендувати установку Lighttpd з вихідного коду. Це означає, що вам необхідно завантажити їх, скомпілювати і встановити. Це досить простий процес, і у мене все проходило успішно незалежно від платформи. Важливі команди для компіляції і установки можуть бути знайдені на домашній сторінці проекту.
Якщо ви використовуєте Gentoo або FreeBSD, установка буде ще більш простий. У Gentoo просто напишіть:
FreeBSD має порт Lighttpd в / usr / ports / www / lightpd, який ви можете встановити тими ж самими методами, що й для установки інших портів (див. Розділ 4.5.2 FreeBSD handbook).
Після установки Lighttpd вам буде потрібно створити конфігураційний файл. Дистрибутив Lighttpd містить приклад в папці doc /, який підходить для всіх потреб по обробці статичного контенту. Розглянемо найважливіші аспекти конфігурації.
Якщо змінна server.document-root НЕ буде задана, Lighttpd намагатиметься працювати з / www / pages, що, ймовірно, не відповідає конфігурації вашої системи. Тому її необхідно поставити:
server.document-root = "/ www / pages"
Тепер зазначимо, куди класти логи (переконайтеся, що шлях існує, за допомогою mkdir -p / var / log / lighttpd):
server.errorlog = "/ var / log / lighttpd / error_log"
accesslog.filename = "/ var / log / lighttpd / access_log"
настройка Apache proxy
Приріст продуктивності, який дасть вам застосування Lighttpd, що не феноменальний, але в багатьох ситуаціях він не буде зайвим. Якщо ви використовуєте важкі PHP-скрипти або програми Ruby on Rails, буде не зайвим перекласти їх на плечі FastCGI Lighttpd, так як його підтримка балансування навантаження набагато більш просунута, ніж у Apache і може дати істотне прискорення.
Для того щоб використовувати PHP з Lighttpd, переконайтеся, що ви скомпілювали PHP з підтримкою FastCGI. Ви можете зробити це за допомогою конфігураційного ключа --enable-fastcgi.
Наведений нижче конфігураційний код допоможе вам швидко запускати додатки Ruby on Rails, істотно розвантаживши Apache.
fastcgi.server = (
".fcgi" =>
( "Localhost" =>
( "Socket" => "/ home / path_to_app / var / lighttpd-fcgi.socket",
"Bin-path" => "/ home / path_to_app / rails_sites / rails_app_name / public / dispatch.fcgi",
"Bin-environment" => ( "RAILS_ENV" => "production"),
"Min-procs" => 1,
"Max-procs" => 1,
"Idle-timeout" => 60,
"Allow-x-send-file" => "enable")))
чим менше навантаження на сервер, тим щасливіше відвідувачі
Перенісши частина навантаження з Apache на Lighttpd, ви збільшите продуктивність вашого веб-сайту, знизите навантаження на сервер, і зробите роботу клієнтів більш приємною. Для важких навантажень, ви можете встановити ще один сервер, підключити його до локальної мережі і запустити на ньому Lighttpd на порту 80. Використовуючи модуль Apache Proxy, ви зможете перенаправляти висновок від локального сервера Lighttpd на «особовий» сервер з Apache. Я переконався, що Lighttpd може бути вельми корисним в зниженні навантаження і збільшенні продуктивності, особливо в обслуговуванні додатків PHP і Rails, і сподіваюся, що вам він теж стане в нагоді.
Роберт В. Олівер II, переклад Дмитра геруссии