Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #68, ИЮЛЬ 2006 г.

царь-хостинг

_MIF_ (ROOT@SECURITYLAB.CO.IL)

Спецвыпуск: Хакер, номер #068, стр. 068-044-5


Структура директорий

Условимся, что мы используем следующую структуру директорий:

/usr/home/юзер – домашняя дира юзеров;

/usr/home/юзер/web – рутовая веб-папка юзера;

/usr/home/юзер/tmp – темп-дира юзера;

/usr/home/юзер/cgi-bin – cgi-bin юзера;

/etc и /usr/local/etc – папки с конфигами;

/etc/awstats – папка конфигов статистики;

/var/db/awstats – папка с БД статистики;

/var/log/www – папка с логами виртуальных хостов

[Apache.]

Кроме обычных клиентов с мега-порталами (привет, VinT :)) и домашними страничками, услугами хостинга пользуются еще и много коммерческих организаций, в частности, инет-магазины. Поэтому нам нужна возможность предоставлять им https. На сегодняшний день существуют две основные релизации SSL для Apache. Это Apache-ssl, поддерживаемый самой Apache Group и сторонняя разработка – mod_ssl. Последняя дает намного больше возможностей и намного активней поддерживается, поэтому используем ее. Итак, собираем Apache:

# cd /usr/ports/www/apache13-modssl

# make install clean

И переходим к настройке. Основной конфиг Апача лежит в /usr/local/etc/apache и зовется httpd.conf. Конфиг совсем не маленький, поэтому я опишу лишь самые основные и важные параметры, а полностью ты сможешь найти его на диске.

# Запускаем сервер через inetd или самостоятельным демоном, # inetd у нас в системе выключен, так что выбор невелик :).

ServerType standalone

# Рутовая директория веб-сервера

ServerRoot "/usr/local"

# Таймаут соединений в секундах.

Timeout 300

# А вот об этом – поподробней. KeepAlive - механизм, позволяющий, не прерывая # соединения с сервером, отправить ему несколько запросов. Это позволяет

# экономить ресурсы за счет того, что не создается новый процесс, а на запросы

# отвечает уже существующий. Количество запросов и таймаут указываются

# следующими опциями:

KeepAlive On

MaxKeepAliveRequests 100

KeepAliveTimeout 15

# Следующие три настройки сильно зависят от загруженности веб-сервера. Они

# указывают на то, сколько серверов минимум и максимум может быть загружено, и сколько # процессов сервера запускать при старте.

MinSpareServers 10

MaxSpareServers 70

StartServers 10

# Сколько клиентов может одновременно обслуживать сервер

MaxClients 150

# Сколько запросов может одновременно обрабатывать один процесс сервера

# (0 – не ограничено). Ноль ставить не рекомендуется.

MaxRequestsPerChild 7000

Дальше у нас идут настройки Listen и Bind - тут ничего хитрого нет. А сразу за ними – список модулей, которые подгружает сервер. Смело комментируй ненужные:

mod_userdir, mod_info, mod_proxy, mod_imap, mod_auth_db

Обрати внимание, что каждый модуль нужно закомментировать дважды – в секции LoadModule и в секции AddModule. Дальше идет конфигурация основного сервера, но мы там почти ничего менять не станем, т.к. «основной» сервер использоваться у нас не будет – мы будем основываться на виртуальном хостинге. Смело стираем блок <mod_userdir> и раскомментируем строки:

Назад на стр. 068-044-4  Содержание  Вперед на стр. 068-044-6