16.14.1. Настройка kHTTPd
16.14.1. Настройка kHTTPd
Так как kHTTPd является процессом уровня ядра, его настройка выполняется путем записи информации в файлы, хранящиеся в каталоге /proc/sys/net/khttpd.
Сначала нужно перекомпилировать ядро (этому процессу посвящена отдельная глава), включив в его состав kHTTPd. Для этого включите опцию Kernel HTTPd Acceleration в меню Network Options.
После этого нужно настроить веб-сервер Apache для работы по порту 8080 (директива Port в файле httpd.conf) и перезапустить его:
# service httpd restart
Загрузите модуль ядра khttpd:
# insmod khttpd
Укажите серверу kHTTPd, что запросы клиентов нужно обрабатывать через порт 80, а те запросы, с которыми он не может справиться, передавать Apache:
# echo 80 > /proc/sys/net/khttpd/serverport
# echo 8080 > /proc/sys/net/clientport
Какие запросы не может обработать kHTTPd? Ему «не по зубам» запросы, предполагающие запуск сценария. Все такие запросы будут перенаправлены Apache. Поэтому, если ваш веб-сервер предполагает в основном запуск CGI-сценариев (в том числе и PHP-сценариев), использовать kHTTPd нецелесообразно. Вместо повышения производительности вы добьетесь обратного.
Сообщите серверу kHTTPd, где нужно искать веб-страницы (в том же каталоге, который указан в директиве DocumentRoot сервера Apache):
# echo /var/www/html > /proc/sys/net/khttpd/documentroot
Если на вашем сервере установлен PHP, укажите каталог, в котором хранятся PHP-сценарии:
# echo /var/www/html/scripts > /proc/sys/net/khttpd/dynamic
Для запуска kHTTPd введите следующую команду:
# echo 1 > /proc/sys/net/khttpd/start
Всю эту работу можно автоматизировать, написав сценарий khttpd-start (листинг 16.16):
Листинг 12.16. Сценарий автоматического запуска kHTTPd
#!/bin/bash
# Загружаем модуль kHTTPd insmod khttpd
# Указываем порт kHTTPd
echo 80 > /proc/sys/net/khttpd/serverport
# Указываем порт Apache
echo 8080 > /proc/sys/net/clientport
# Корневой каталог веб-сервера и каталог
# для хранения сценариев
echo /var/www/html > /proc/sys/net/khttpd/documentroot
echo /var/www/html/scripts > /proc/sys/net/khttpd/dynamic
# Запускаем kHTTPd
echo 1 > /proc/sys/net/khttpd/start
Так как kHTTPd — это процесс уровня ядра, к тому же экспериментальный, его использование может отрицательно повлиять на надежность работы системы. Помните, что сервер kHTTPd не может обеспечить такой же уровень надежности, как Apache. kHTTPd следует применять только в том случае, если Apache не справляется с нагрузкой и на веб-сервере не часто запускаются CGI-сценарии.
Данный текст является ознакомительным фрагментом.