Документация по ОС FreeBSD Воскресенье, 28.04.2024, 19:26
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Apache

Использование thttpd [2004]
Установка 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).


Источник: http://www.opennet.ru/base/net/thttpd_openbsd.txt.html
Категория: Apache | Добавил: oleg (21.01.2008) | Автор: Mike Belopuhov
Просмотров: 1286 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024