Linux Gazette на русском | Выпуск #103 |
Тираж 7895 экз.
"...Беги, TUX, беги!..."
(Лола)
Приветствую! В нашем полку (RLG Team) прибыло. К нам присоединился
Игорь Яровинский. Прошу любить и жаловать. :-) Добро пожаловать,
Игорь! :-)
А теперь о переводе. Пусть сам автор статьи (Vinayak Hegde) даст
анонс: ...Если Вы рассчитываете найти в этой статье
информацию о пингвине Туксе (Tux), который стал талисманом ОС Linux,
то спешу Вас разочаровать. Но не расстраивайтесь: эта статья расскажет
Вам о веб-сервере TUX... :-)
Спасибо за перевод Игорю Яровинскому!
Присылайте свои вопросы и замечания о материалах,
публикуемых на сайте, по адресу lgrus@lrn.ru и, если не трудно,
сразу указывайте, можно ли использовать Ваши письма в
рассылке.
Если Вы рассчитываете найти в этой статье информацию о пингвине Туксе (Tux),
который стал талисманом ОС Linux, то мне придется Вас разочаровать.
Но не расстраивайтесь: эта статья расскажет Вам о веб-сервере TUX.
Слово TUX происходит от Threaded linUX webserver. Он был создан
корпорацией Red Hat и базируется на ядрах серии 2.4, являясь
подсистемой, которая работает на уровне ядра. TUX распространяется
по лицензии GNU GPL, а это значит что Вы в праве модифицировать
эту программу согласно своим требованиям. Один из способов
приспособить её к нашим потребностям - это написать
TUX-модули, которые могут быть как модулями пользовательского
уровня, так и уровня ядра. Основной целью создания TUX было
создание мощного веб-сервера на базе Linux - операционной системы,
которую все чаще и чаще используют в качестве платформы для
веб-серверов.
TUX по сравнению с Apache имеет несколько ограничений и в тоже
время является полным HTTP/1.1 сервером, который поддерживает
постоянное ведение логов, конвейерную обработку (pipelining),
выполнение CGI, виртуальные сервера, различные модули и многое
другое.
Что TUX может сделать для меня?
Первые версии TUX использовались прежде всего для обслуживания
страниц со статическим содержимым, оставляя генерирование и
обслуживание динамически создаваемых страниц таким веб-серверам
как Apache. В новых версиях TUX появилась возможность обслуживать
страницы с динамическим содержимым. Специально написанные модули
для этого веб-сервера могут создавать упорядоченные "объекты" используя
кеш. На запрос динамической страницы TUX-модуль отправляет
динамически сгенерированную информацию и заранее созданные
"объекты", которые уже находятся в кеше. Таким образом,
большинство запросов связанных с обычным копированием по сети могут
быть эффективно обработаны, если используется TUX-веб-сервер.
Кроме этого в последних версиях TUX появилась возможность
создания виртуальных хостов, количество которых может быть
ограничено только размером дискового пространства и объемом
оперативной памяти.
Итак, приступим к изучению TUX
Теперь, когда мы знаем, что можно сделать используя TUX, можно
переходить к его установке и настройке. Вся последующая информация
была проверена на Red Hat 7.2 с использованием TUX-2.1.0-2.
Шаг 1: установка
Проверьте, установлен ли у Вас TUX.
Для этого в командной строке наберите:
# rpm -q tux
В результате Вы получите одно из сообщений:
tux-2.1.0-2 (TUX установлен, и показана версия
программы)
пакет tux не установлен (значит нужно устанавливать) (В RedHat8.0 включена версия tux-2.2.7-3. В этой и
последующих версиях меньше недостатков и больше опций для
конфигурирования, некоторые из которых рассматриваются далее -
прим. перев.)
Если TUX не установлен, то это очень просто исправить:
Установка из RPM
Зайдите в каталог, где Вы храните RPM-файлы и выполните
команду
# rpm -ivh tux-2.1.0-2.i386.rpm
Установка из исходников (Установка из исходников займет намного больше времени -
прим. перев.)
Для начала необходимо пропатчить и откомпилировать ядро:
# patch -p0 < tux2-full-2.4.10
# make oldconfig (подключите TUX, перекомпилируйте и установите ядро)
Установите необходимые утилиты:
# tar xzvf tux-2.1.0.tar.gz
# cd tux-2.0.25
# make
# make install
Шаг 2: Настройка
Создайте каталог /var/www/html (или другой каталог по Вашему
выбору) и сделайте его корневым каталогом для TUX, изменив значение
DOCDIR в /etc/sysconfig/tux . Кроме этого можно задать каталог, где будут
содержатся CGI-сценарии, изменив значение для CGIROOT. Создайте
файл index.html в корневом каталоге сервера (/var/www/html ) и
переходите к шагу 3.
Шаг 3: Запуск
TUX можно запустить, используя команду (для этого нужно иметь
права root):
# service tux start (на RedHat подобных системах)
# ./tux.init start (на non-RedHat системах)
# lsmod
Module size Used by
tux 75568 0
....
....
Теперь запустите свой любимый браузер и зайдите на localhost
# lynx localhost
Если все настройки верны, то вы зайдете на первую страницу
(index.html) только что установленного веб-сервера!
Шаг 4: Ведение лог-файлов
По умолчанию создание логов отключено. Для ведения лог-файлов
выполните следующие команды:
Для каждого подключения TUX записывает в файл /var/log/tux
(используется по умолчанию) адрес, дату, время и размер
выкаченной информации. Файл /var/log/tux хранится в бинарном
формате. В таком виде он получается на 50% меньше аналогичных
ASCII-файлов. Для просмотра логов нужно выполнить команду:
Программа tux2w3c конвертирует бинарные лог-файлы в стандартные
W3C HTTPD лог-файлы.
Шаг 5: Включение gzip-сжатия
Как нам уже известно, TUX способен "увеличить
скорость" работы клиентов в Internet. Используя gzip-сжатие
можно уменьшить время загрузки информации, но при этом и клиент
должен поддерживать возможность работы с gzip-сжатыми данными. По умолчанию gzip-сжатие в TUX
отключено, для его включения необходимо выполнить следующую
команду:
# echo 1 > /proc/sys/net/tux/compression
Для включения gzip-сжатия при запуске,
добавьте в файл /etc/sysctl.conf строку:
net.tux.compression=1
Сжатые gzip-файлы с расширением .gz должны находиться в том же
каталоге, что и несжатые файлы веб-страниц, которые вы хотите
использовать.
Шаг 6: Дополнительная настройка TUX
Мы еще не завершили настройку TUX. Есть еще несколько интересных
(полезных) вещей, которые Вы можете использовать (некоторые из них
доступны только в RHCA v2.2)
application_protocol
Если установлен в 1, то включает RHCA FTP сервер. По умолчанию
установлен в 1.
virtual_server
Если установлен в 1, то запускает на машине виртуальный хостинг.
Корневой каталог для виртуального хоста создается в $DOCROOT/
(virtual docroots).
http_dir_indexing
Если установлен в 1, то при отсутствии index.html-файла будет
отображено содержимое данного каталога.
Существует еще очень много параметров, используя которые Вы
можете увеличить производительность TUX. Поэкспериментируйте с
ними, и вы сможете сконфигурировать веб-сервер соответствующий Вашим
требованиям.
Шаг 7: Конфигурирование Apache для работы с TUX
В нашей системе TUX будет использоваться как внешний веб-сервер
на 80-том порту. Apache будет использоваться как внутренний
веб-сервер на порту 8080 для обработки запросов, которые TUX не
понимает. Для этого необходимо сделать некоторые поправки в файле
конфигурации Apache (httpd.conf):
замените строку
Port 80
строкой
Port 8080 (порт, который слушает Apache)
Также, для предотвращения обхода TUX и прямого доступа к Apache
необходимо сделать следующие изменения. Этого требует
безопасность системы:
Вы можете останавливать/перезапускать TUX, используя следующие
команды:
# service tux stop (на RedHat подобных системах)
или
# ./tux-init stop (на non-RedHat системах)
# service tux restart
или
# ./tux-init restart
В целях отладки можно использовать скрипт gettuxconfig,
который находится в /usr/share/doc/tux-version/ . Если Вы
используете SMP-систему, то можете проверить правильно ли настроены
все сетевые интерфейсы используя скрипт checkbindings.
Этот скрипт также находится в каталоге /usr/share/doc/tux-version/
.
Заключение
Как мы видим [Ну, этого из самой статьи не видно, но уверен,
если Вы попробуете настроить и использовать TUX, то это станет более
очевидным. Прим.ред.], TUX позволяет улучшить производительность работы
веб-сервера. Он очень удобен и прост в конфигурировании, а также имеет
множество интересных особенностей.
Команда переводчиков:
Владимир Меренков, Александр Михайлов, Иван Песин, Сергей
Скороходов, Александр Саввин, Роман Шумихин, Александр Куприн,
Андрей Киселев, Игорь Яровинский
Со всеми предложениями, идеями и комментариями обращайтесь к
Александру Куприну (lgrus@lrn.ru). Убедительная
просьба: указывайте сразу, не возражаете ли Вы против публикации
Ваших отзывов в рассылке.