LXF125:Lighttpd
|
|
|
Содержание |
Обслуживаем страницы с Lighttpd
- Lighttpd – быстрая и легкая альтернатива Apache, нацеленная на сайты с большим трафиком. Джульетта Кемп покажет, что настроить его – раз плюнуть.
Apache сейчас стал стандартным web-сервером для большинства пользователей Linux, и это превосходный продукт. Но для некоторых весьма и весьма быстрых сайтов с высокой загрузкой он может отставать от идеала. Специально для них разработан Lighttpd – сервер, занимающий минимум памяти и работающий на максимуме скорости. Он особенно хорош для обслуживания статического контента, отлично масштабируется на несколько серверов и ладит с FastCGI (вы можете настроить Lighttpd в качестве оболочки для использования массива серверов FastCGI). Кроме того, как мы покажем на данном уроке, его легко настроить. Даже если ваш сайт не гонится за скоростью Lighttpd, поработать с ним приятно – он даже настраивается быстрее Apache!
Как обычно, если вы желаете иметь самую свежую версию (1.4.24), загрузите исходные тексты с сайта проекта (http://www.lighttpd.net). Однако почти всегда лучше будет использовать пакет, имеющийся в дистрибутиве (поскольку это вариант с оптимальной поддержкой для длительного применения). В Debian/Ubuntu пакет называется Lighttpd (в Debian Lenny и Ubuntu 9.04 используется версия 1.4.19, что не очень и далеко от основного релиза проекта); доступен он и в виде RPM.
Если у вас нет другого web-сервера, работающего по порту 80 (см. врезку, если есть), то стандартные настройки, созданные при установке пакета, позволят вам запустить сервер немедленно командой
/etc/init.d/lighttpd start.
Если на время настройки вы хотите запустить его в режиме отладки (чтобы он находился в терминале и выводил служебные сообщения прямо на экран), скомандуйте lighttpd -D -f /etc/lighttpd/lighttpd.conf.
Перейдите на http://localhost, и перед вам предстанет базовая страница-заглушка (вид ее зависит от выбранного пакета). Базовая стандартная настройка, создаваемая при установке, выглядит как-то так:
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
# В вашем файле с настройками может быть больше строк, причем в другом порядке: это нормально! server.modules = ( “mod_access”, “mod_alias”, “mod_accesslog”, “mod_compress”, ) server.document-root = “/var/www/” server.port = 80 server.errorlog = “/var/log/lighttpd/error.log” accesslog.filename = “/var/log/lighttpd/access.log” index-file.names = ( “index.php”, “index.html”, “index.htm”, “default.htm”, “index.lighttpd.html” ) url.access-deny = ( “~”, “.inc” ) static-file.exclude-extensions = ( “.php”, “.pl”, “.fcgi” ) include_shell “/usr/share/lighttpd/create-mime.assign.pl”
Здесь все должно быть понятно! Представлено немножко модулей, включенных по умолчанию, настроены журналы (журнал доступа требует строки для модуля mod_accesslog в разделе server.modules), а также настроены имена индексных файлов (тех, которые отображаются при запросе http://пример.com/каталог/).
Параметр url.access-deny устанавливает, какие файлы вообще не должны обрабатываться: здесь это лишь файлы с суффиксом ~ (обычно так помечаются резервные копии, и вы вряд ли захотите, чтобы старые данные были доступны из Интернета), а также файлы .inc, являющиеся исходными текстами для генерации динамического содержимого. Заметим, что в данный момент наш web-сервер не работает с динамическим содержимым, поскольку нет подключенных и настроенных модулей; но даже после их настройки вам незачем выкатывать исходные тексты на всеобщее обозрение, поскольку это может вызвать проблемы с безопасностью.
Debian создает MIME-типы при помощи скрипта, который включен (и запускается) в строке include_shell; в других случаях вы можете указать их вручную (добавьте и другие строки, если хотите!):
# Замените строку include_shell этими строками mimetype.assign = ( “.html” => “text/html”, “.txt” => “text/plain”, “.jpg” => “image/jpeg”, “.png” => “image/png” )
Чтобы протестировать настройки перед стартом сервера, будет неплохо воспользоваться командой
lighttpd -t -f /etc/lighttpd/lighttpd.conf
Еще одно действие, которое не мешает выполнить заранее – создание пользовательских каталогов. Все просто:
lighty-enable-mod userdir /etc/init.d/lighttpd force-reload
PHP и FastCGI
Сейчас ваш web-сервер работает только со статическим содержимым – и для этого Lighttpd особенно хорош. Есть даже крупные сайты, которые применяют его для своего статического содержимого, а для динамического берут альтернативу, потому что обслуживание статичных файлов куда проще. Однако Lighttpd отлично справляется и с динамическим содержимым, особенно по протоколу FastCGI, который предоставляет интерфейс между вашим web-сервером и внешними приложениями – он очень похож на CGI, но лучше масштабируется. FastCGI не зависит от платформы, поэтому любое FastCGI-приложение, уже установленное и настроенное в Apache или другом web-сервере, прекрасно заработает и в Lighttpd. FastCGI предназначен для борьбы с рядом ограничений производительности CGI, а Lighttpd улучшает его еще больше, делая внутреннюю нагрузку FastCGI сбалансированной, что увеличивает производительность по сравнению с Apache и mod_php.
Для настройки этого в вашем новом lighttpd-сервере необходим mod_fastcgi. Он должен находиться в /etc/lighttpd/mods-available/. Чтобы подключить его, воспользуйтесь
# /usr/sbin/lighty-enable-mod # /etc/init.d/lighttpd force-reload
Скрипт lighty-enable-mod выдаст вам список доступных модулей и спросит, какие из них включить; после этого вы перезапустите сервер, чтобы применить изменения.
Мы рассматриваем запуск FastCGI с PHP (как и CGI, он не зависит от языка, поэтому вы можете использовать Perl или чтото еще). Тогда потребуется также добавить PHP5-CGI, если он у вас уже не установлен (в Debian Lenny и Ubuntu, это пакет php5-cgi).
Для настройки php5-cgi необходимо подправить файл /etc/php5/cgi/php.ini, добавив в его конец следующую строку:
cgi.fix_pathinfo = 1
Перезапустите сервер, и все готово: вы настроили Lighttpd для поддержки PHP через FastCGI! (К сожалению, пока что нет модуля, который писал бы за вас на PHP…)
Настройка SSL
Другой полезной настройкой web-сервера является SSL, с целью доставки защищенных страниц по https://ссылка. В стандартном для Debian/Ubuntu Lighttpd SSL включен: желая удостовериться, что это так, выполните lighttpd -v и убедитесь, что выводится нечто подобное:
lighttpd-1.4.19 (ssl) - a light and fast webserver
(ssl) здесь главная часть. Затем воспользуйтесь lighty-enable-mod, чтобы включить SSL-модуль, как описано выше в разделе о PHP. Вам потребуется исправить файл /etc/lighttpd/sitesavailable/10-ssl.conf, введя корректные параметры сертификата вашего сервера:
$SERVER[“socket”] == “10.0.0.9:443” { ssl.engine = “enable” ssl.pemfile = “/etc/lighttpd/www.server.org.pem” server.name = “www.server.org” }
Необходимо изменить адрес в верхней строке, а также строки ssl.pemfile и server.name. Затем перезапустите сервер командой /etc/init.d/lighttpd forcereload, и вы сможете подключаться к вашему серверу по https://адрес.
Мы не будем здесь описывать настройку SSL-сертификатовсервера,поскольку это выходит за рамки данного урока – но очевидно, что для работы необходим действительный сертификат в месте, указанном в ssl.pemfile. Для создания сертификата изучите команду openssl.
Переписываем правила
Вам потребуется заново создать правила, которые у вас уже есть в файле .htaccess, поскольку Lighttpd его не использует. Вот пример переписывания правил под Lighttpd:
url.rewrite-once = ( “^/faq/([0-9]+)$” => “/faq. php?id=$1” )
Это преобразует http://www.example.com/faq/71 в http://www.example.com/faq.php?id=71.
Другой опцией является канонизация расширений файлов:
url.rewrite-once = ( “/(.*)\.htm” => “/$1.html” )
Причем те, кто использует .htm' вместо .html, будут перенаправлены по корректному адресу. Чтобы включить перезапись, раскомментируйте строку mod_rewrite в разделе server.modules файла настроек и перезапустите сервер.
Настройка виртуального сервера
Lighttpd прекрасно поддерживает виртуальные серверы на базе URL, используемого для доступа к странице. Вы задаете выражение-условие в файле настроек, а Lighttpd определяет по нему, какое содержимое следует обрабатывать (и как его представлять). Вот пример настройки для создания виртуального хоста http://www.myothersite.net (чтобы все работало, необходимо, естественно, также иметь зарегистрированный и настроенный домен в DNS):
$HTTP[“host”] == “www.myothersite.net” { server.document-root = “/var/www/myothersite/” $HTTP[“url”] =~ “^/usefulscripts/” { dir-listing.activate = “enable” } }
Если обрабатываемый URL содержит www.myothersite.net, Lighttpd воспользуется настройками внутри этого условия вместо стандартных для сервера. В данном случае, это означает смену корневого каталога сайта (то есть при запросе http://www.myothersite.net/test.html будет обработан файл /var/www/myothersite/test.html) и такую настройку каталога usefulscripts, чтобы можно было получать список содержимого директории (то есть чтобы запрос http://www.myothersite.net/usefulscripts/ выдавал перечень файлов в каталоге – изначально, по соображениям безопасности, это отключено). В условной конфигурации можно размещать любые опции и иметь сколько угодно виртуальных хостов.