The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Использование thttpd (openbsd httpd we cgi qos limit)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: openbsd, httpd, we, cgi, qos, limit,  (найти похожие документы)
From: Mike Belopuhov <mkb@cvs.hnet.spb.ru.> Newsgroups: http://openbsd.hnet.spb.ru Date: Mon, 20 Sep 2004 18:21:07 +0000 (UTC) Subject: Использование thttpd Оригинал: http://openbsd.hnet.spb.ru/thttpd.html Содержание: Установка Иcпользование CGI с thttpd QoS в отдельно взятом HTTP сервере Реализация виртуального хостинга в thttpd Замечания Заметка предназначается всем, кто ищет альтернативный HTTP сервер с очень малым потреблением системных ресурсов и большой скоростью. thttp имеет еще пару особенностей и полезностей. Вместе с тем он крайне нетребователен к ресурсам (занимает ~960kb RAM), достаточно эффективен (на системах BSD использует kqueue) и безопасен (privsep, chroot). Тем паче, что установка этого чуда -- дело пяти минут. Установка thttpd Шаг #1. Собственно установка: $ cd /usr/ports/www/thttpd; sudo make install Шаг #2. Настройка rc.local на запуск thttpd Для этого в /etc/rc.local добавим следующее (желательно до строки, содержащей `echo '.'', дабы не сбить оригинальное форматирование при выводе): if [ "X${thttpd_flags}" != X"NO" -a -x /usr/local/sbin/thttpd ]; then echo -n ' thttpd'; /usr/local/sbin/thttpd ${thttpd_flags} fi и соответственно в /etc/rc.conf.local: thttpd_flags="-C /etc/thttpd.conf" Таким образом можно управлять загрузкой thttpd с помощью thttpd_flags. Шаг #3. Конфигурационный файл thttpd Я хочу схитрить и показать работающую конфигурацию (конечно только ради того, чтобы сберечь Ваше время ;). В данном случае я использую thttpd с /var/www и пользователем www (прошу прощения за каламбур). Таким образом никакого дополнительного дерева директорий и пользователя создавать не придется. Итак, /etc/thttpd.conf: port=80 dir=/var/www chroot data_dir=public_html user=www logfile=/var/www/logs/thttpd.log pidfile=/var/run/thttpd.pid charset=koi8-r Параметр data_dir указывает на собственно место расположения HTML страничек -- это может быть и htdocs (как в Apache). Подробнее об опциях можно прочитать в thttpd(8). Шаг #4. Запуск. Для проверки можно запустить thttpd не превращая его в демона: # /usr/local/sbin/thttpd -C /etc/thttpd.conf -D Если все нормально, то ^C и запустить его нормально: # /usr/local/sbin/thttpd -C /etc/thttpd.conf Иcпользование CGI с thttpd Все очень просто. Во-первых уберем параметр chroot из thttpd.conf, если у Вас конечно CGI программы не написаны на C и слинкованы статически. Во-вторых -- пишем где их искать. Запись cgipat=/cgi-bin/* означает, что можно запускать CGI программы из директории полный путь которой складывается из значений параметров dir и data_dir. Положим, что dir=/var/www, а data_dir=htdocs, тогда поный путь к директории с CGI программами будет /var/www/htdocs/cgi-bin/. QoS в отдельно взятом HTTP сервере Первая буква в названии как раз и говорит о том, что (помимо tiny и turbo) этот сервер поддерживает технологию Quality of Service (здесь и далее будем называть это термином throttling). Идея, положенная в реализацию throttling'а, заключается в дифференцировании скорости передачи объектов по их типу (т.е. типу файла). Таким образом, например для файлов изображений, можно установить максимальную скорость передачи в половину пропускной способности канала, а для HTML файлов, наоборот задать максимальную скорость передачи. Детально это записывается так (пример для канала Fast Ethernet): ** 12500000 # full **.jpg|**.gif|**.png 3125000 # quarter в файл throttle, который указывается в конфигурационном файле (/etc/thttpd.conf) параметром throttles: throttles=/var/www/conf/throttles В thttpd(8) это очень понятно расписано (раздел THROTTLING) и дан более развернутый пример. Реализация виртуального хостинга в thttpd Как сказано в thttpd(8), поддерживается две разновидности виртуального хостинга: ``IP based'' и ``name based''. Рассмотрим второй вариант. Первый шаг -- создать записи в DNS: www.server.com IN A x.y.z.k sub1.server.com IN CNAME www.server.com ... Для тех кто тестирует, хватит записи и в /etc/hosts. Далее, нужно в директории, доступной thttpd (скажем /var/www) создать соответствующие директории для кажного sub-домена: # mkdir /var/www/www.server.com /var/www/sub1.server.com Ну и наконец дадим знать об этом thttpd. Это достигается добавлением в конфигурационный файл (/etc/thttpd.conf) параметра vhost. Viola! Это все. Помните, что директории cgi-bin должны быть в каждой директории для виртуального хостинга. Замечания 1. Пользователям Apache, привыкшим к директиве Indexes может быть не сразу ясно как запретить серверу выдавать листинги директорий. Все решается стандартными правами Unix. Пример (thttpd работает от www.www): $ ls -dl /var/www/public_html/dir drwxr-xr-x 2 user daemon 512 Aug 4 22:35 /var/www/public_html/dir $ chmod 751 /var/www/public_html/dir drwxr-x--x 2 user daemon 512 Aug 4 22:35 /var/www/public_html/dir 2. Страницы со стандартными ответами (Error 404, например), можно заменить на свои. Для этого создается директория errors, в которую помещаются файлы errXXX.html (к примеру, err404.html).

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру