HTTP-сервер

Apache HTTP-сервер (назван именем группы племён североамериканских индейцев апачей; кроме того, является сокращением от англ. a patchy server; среди русских пользователей общепринято искажённое апа́ч) — свободный веб-сервер. Apache является кроссплатформенным ПО, поддерживает операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS.
Основными достоинствами Apache считаются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Поддерживает IPv6.
Сервер был написан в начале 1995 года и считается, что его имя восходит к шуточному названию «a patchy» (англ. «заплаточка»), так как он устранял ошибки популярного тогда сервера Всемирной паутины NCSA HTTPd 1.3. В дальнейшем, с версии 2.х, сервер был переписан заново и теперь не содержит кода NCSA. На данный момент разработка ведётся в ветке 2.2, а в версиях 1.3 и 2.0 производятся лишь исправления ошибок безопасности. На текущий момент последняя версия ветки 2.4 — 2.4.3 (21 августа 2012), для первой версии это 1.3.42.
Скопипастил здесь

Всё что будет написано ниже, 100% работает на Debian 7.3.
Исходные данные
192.168.100.1 — IP сервера
server1 — имя данного сервера
Какие есть варианты:
[root@server1 ~] # apt-cache search apache2 |grep apache2-mpm
apache2-mpm-itk - multiuser MPM for Apache 2.2
apache2-mpm-event - HTTP-сервер Apache -- событийная модель
apache2-mpm-prefork - традиционная беспотоковая модель HTTP-сервера Apache
apache2-mpm-worker - простая модель параллельной обработки HTTP-сервера Apache
Мне больше нравится первый вариант — apache2-mpm-itk, т.к. позволяет запускать каждый виртуальный хост в рамках отдельного UID и GID -одним словом, скрипты и файлы конфигурации для одного виртуального хоста больше не будут доступны для чтения всем остальным виртуальным доменам…
Установим:
[root@server1 ~] # apt-get install apache2-mpm-itk
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap ssl-cert
Предлагаемые пакеты:
apache2-doc apache2-suexec apache2-suexec-custom openssl-blacklist
НОВЫЕ пакеты, которые будут установлены:
apache2-mpm-itk apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap ssl-cert
обновлено 0, установлено 9 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 1 485 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 5 641 kB.
Хотите продолжить [Д/н]?
...
...
...
Настраивается пакет apache2-mpm-itk (2.2.22-13) …
[ ok ] Starting web server: apache2.
Настройки: /etc/apache2/sites-available/ — здесь хранятся (ну по крайней мере должны IMHO) файлы настроек виртуальных хостов. НО! здесь только хранятся, а что бы их включить, достаточно сделать линк на файл в папке /etc/apache2/sites-enabled/
[root@server1 /] # ll /etc/apache2/sites-enabled/
итого 0
lrwxrwxrwx 1 root root 26 Янв 22 21:21 000-default -> ../sites-available/default
В качестве примера, создадим виртуальный хост для локального зеркала Debian. Исходные данные
192.168.1.60 — внешний IP
192.168.100.1 — внутренний IP
192.168.100.0/24 — локальная сеть
mydrafts.local — «локальный» домен repo — имя данного сервера
apt — алиас repo.mydrafts.local
[root@server1 /] # cat /etc/apache2/sites-available/aptmirror


<VirtualHost *:80>
        ServerAdmin webmaster@mydrafts.local
        ServerName repo.mydrafts.local
        ServerAlias apt.mydrafts.local

        DocumentRoot /mnt/repo/debian/mirror/ftp.corbina.net
        <Directory />
                Options -Indexes FollowSymLinks
                AllowOverride None
                DirectoryIndex aptindex.html
        </Directory>
        <Directory /mnt/repo/debian/mirror/ftp.corbina.net/>
                Options -Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from 192.168.100.0/24
                DirectoryIndex aptindex.html
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/aptmirror-error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
        LogLevel warn

        AssignUserId apt-mirror apt-mirror

        CustomLog ${APACHE_LOG_DIR}/aptmirror-access.log combined
</VirtualHost>




Конфигурация для виртуального хоста готова:
AssignUserId apt-mirror apt-mirror — именно эта команда заставит работать виртуальный хост от имени apt-mirror
allow from 192.168.100.0/24 — только для локальной сети
DirectoryIndex aptindex.html — изменит стандартный корневой документ (index.html)
Активируем конфигурацию:
[root@server1 /] # cd /etc/apache2/sites-enabled
ln -s ../sites-available/aptmirror 001-aptmirror
индексный файл:
[root@server1 /] # echo '<!DOCTYPE HTML>
<html>
<head>
<title>APT-Mirror</title>
<meta charset="utf-8">
<meta name="GENERATOR" content="nano">
<meta name="ProgId" content="nano editor">
</head>
<body>
Это папка содержит файлы локального репозитория Дебиан Wheezy
<br>
This folder contains a local repository Debian Wheezy
</body>
</html>' > /mnt/repo/debian/mirror/ftp.corbina.net/aptindex.html
Перечитать изменения:
[root@server1 /] # rndc reload
server reload successful
[root@server1 /] # service apache2 reload
[ ok ] Reloading web server config: apache2.
Проверим:
lynx repo.mydrafts.local
APT-MirrorЭто папка содержит файлы локального репозитория Дебиан Wheezy
This folder contains a local repository Debian Wheezy

Команды: стрелки - перемещение, '?' - помощь, 'q' - выход, '<-' - назад.
Стрелки: Вверх, Вниз - перемещение. Вправо - переход по ссылке; Влево - возврат.
H)elp O)ptions P)rint G)o M)Глав экран Q)uit /=поиск [delete]=список истории

Как-то так…