царь-хостинг _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> и раскомментируем строки: |