Linux. Полное руководство.

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-сценарии.