Server Apache
httpd-vhosts.conf — конфигурирование виртуальных хостов

httpd-vhosts.conf — конфигурирование Apache для поддержки виртуальных хостов


Ip-address not found!

#

Apache — виртуальные хосты

httpd-vhosts.conf — создание виртуальных хостов

Концепция виртуальных хостов позволяет создавать, конфигурировать и обслуживать на одном (физическом) веб-сервере Apache множество сайтов.
Виртуальный хост может быть:
«привязанным к IP-адресу»используется отдельный IP-адрес для каждого сайта
или
«привязанным к имени»один IP-адрес для множества сайтов с различными именами.

Термин Виртуальный — якобы существующий, получил распространение в конце 80-х годов. Компьютеры того времени не имели жестких дисков и при включении могли только подвести считывающую головку дисковода к первой дорожке гибкого диска. В начале работы, с пятидюймового системного диска емкостью 256 Кб загружались в память основные компоненты операционной системы (OS-DOS). Затем, с другой дискеты, программное обеспечение, например, Бейсик. Созданная на нем программа записывалась на гибкий диск. Для её исполнения необходимо было загрузить в память интерпретатор Бейсика. То есть, постоянно работал дисковод, приходилось менять гибкие диски, что занимало много времени.
На определенном этапе, с увеличением емкости памяти, появилась возможность часть её выделять и присваивать имя. В эту, именованную, допустим, как диск N, область памяти (получившую название - виртуальный диск), переписывалось нужное программное обеспечение. Отпадала необходимость постоянно обращаться к гибким дискам, что в десятки раз увеличивало производительность работы.

Хост (жарг. host - хозяин) — в обычном понимании любой компьютер, сервер, подключённый к локальной или глобальной сети.

Веб-узел — каждый подключенный к Интернету компьютер, независимо от выполняемых функций (сервер, компьютер клиента, DNS и FTP-сервер и т. д.) — имеет свой уникальный IP-адрес. Иначе обмен информацией - невозможен.

При включении модема, маршрутизатора интернет-провайдер выделит, для входа в сеть Интернет с вашего компьютера, динамический (временный) IP - адрес (ай-пи-адрес).

, в 06 час. 22 мин. 29 сек. вам выделен IP — 54.167.126.106

  Узел - это адрес. Любой узел является хостом
  Например:  
Сайт avege.ru
IP сайта 127.0.0.1
Ваш IP 54.167.126.106 Определить ваш IP
протокол сервера HTTP/1.0
Вы пришли на сайт — avege.ru
и получили с сервера с IP-адресом — 127.0.0.1
на ваш компьютер с IP — 54.167.126.106
страницу — httpd_vhosts_conf.html (см. адресную строку браузера).

После получения у интернет-провайдера IP - адреса и установки канала связи, происходит преобразование имени сайта, портала, сервера, например — vk.com (ВКонтакте), в понятный для компьютера его полный адрес IP, имеющий вид — 87.240.165.80
Служба Internet выполняющая эту операцию, называется службой имен доменов — службой DNS (Domain Name System - система доменных имён).
Компьютеры, обеспечивающие выполнение программ этой службы, называются серверами имен доменов - серверами DNS (Domain Name Servers).
DNS используется для обозначения обоих понятий - службы и серверов имён доменов.

Администратор: Командная строка

Microsoft Windows [Version 10.0.14393]
(c) Корпорация Майкрософт (Microsoft Corporation), 2016. Все права защищены.

C:\Windows\system32>ping vk.com

Обмен пакетами с vk.com [87.240.165.80] с 32 байтами данных:
Ответ от 87.240.165.80: число байт=32 время=32мс TTL=58
Ответ от 87.240.165.80: число байт=32 время=32мс TTL=58
Ответ от 87.240.165.80: число байт=32 время=32мс TTL=58
Ответ от 87.240.165.80: число байт=32 время=33мс TTL=58

Статистика Ping для 87.240.165.80:
    Пакетов: отправлено = 4, получено = 4, потеряно = 0
    (0% потерь)
Приблизительное время приема-передачи в мс:
    Минимальное = 32мсек, Максимальное = 33 мсек, Среднее = 32 мсек

C:\Windows\system32>

HTTP-сервер социальной сети ВКонтакте имеет выделенный IP-адрес — 87.240.165.80.


На предыдущей странице, в файл конфигурации для настройки каталогов пользователей — httpd-userdir.conf, были внесены изменения - определён каталог для виртуальных хостов (сайтов пользователей) — UserDir "www/docs".

Далее, в конфигурационном файле httpd-vhosts.conf нужно, в секции (секциях) VirtualHost, изменить несколько директив для вашего сайта (сайтов).

В начале внесите в файл httpd-vhosts.conf изменения для одного сайта

Для примера, можно временно назвать сайт — namesite.ru. — Это имя (доменное имя) одного из разрабатываемых или отлаживаемых сайтов на сервере Apache, которое, после полной настройки сервера Apache, можно будет заменить на выбранное вами.
При обращении к любому сайту по имени - http://www.имя-сайта.ru/, будет выведена индексная страница - index.html

Создайте на диске "C:\" каталог — "www\docs\namesite.ru" (C:\www\docs\namesite.ru),
в который запишите папки и файлы страниц сайта
- namesite.ru.
Структура вашего сайта    (где, namesite.ru — это имя виртуального хоста - имя сайта).

  • C:\
    • www
      • docs
        • namesite.ru
          • logs
            • namesite.ru-access.log
            • namesite.ru-error.log
          • cgi-bin
            • script1.pl
            • script2.cgi
          • подкаталог 1
            • page-1.html
            • page-n.html
          • подкаталог n
            • page-1.html
            • page-n.html
          • index.html - индексная (главная) страница сайта
        • namesite2.ru - доменное имя для второго вашего сайта
          • logs
            • namesite2.ru-access.log
            • namesite2.ru-error.log
          • cgi-bin
            • script2-1.pl
            • script2-2.cgi
          • подкаталог 1
            • page-1.html
            • page-n.html
          • подкаталог n
            • page-1.html
            • page-n.html
          • index.html
    • Каталоги и файлы OS Windows и других программ
Важно!    В каталоге каждого сайта обязательно должен быть подкаталог logs с файлами журналов - namesite.ru-access.log и namesite.ru-error.log, а также файл главной страницы - index.html

Внимание!    Без внесения изменений в файл — httpd-vhosts.conf

при проверке файла конфигурации виртуальных хостов с помощью команды - httpd.exe -S, вы получите несколько предупреждений:

Администратор: Командная строка

Microsoft Windows [Version 6.3.9600]
(c) Корпорация Майкрософт (Microsoft Corporation), 2013. Все права защищены.

C:\Windows\system32>cd C:\Apache24\bin\

C:\Apache24\bin>httpd.exe -S
AH00112: Warning: DocumentRoot [C:/Apache24/docs/dummy-host.example.com] does not exist
AH00112: Warning: DocumentRoot [C:/Apache24/docs/dummy-host2.example.com] does not exist
VirtualHost configuration: 
*:80                   is a NameVirtualHost
default server dummy-host.example.com (C:/Apache24/conf/extra/httpd-vhosts.conf:23)
port 80 namevhost dummy-host.example.com (C:/Apache24/conf/extra/httpd-vhosts.conf:23)
alias www.dummy-host.example.com
port 80 namevhost dummy-host2.example.com (C:/Apache24/conf/extra/httpd-vhosts.conf:32)
ServerRoot: "C:/Apache24"
Main DocumentRoot: "C:/httpserver.ru/www"
Main ErrorLog: "C:/httpdserver.ru/logs/error.log"
Mutex default: dir="C:/Apache24/logs/" mechanism=default
PidFile: "C:/Apache24/logs/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG

В каталоге C:/Apache24/conf/extra/ откройте в Блокноте файл httpd-vhosts.conf

httpd-vhosts.conf — содержание файла конфигурации сервера Apache 2.4

  Из содержания файла httpd-vhosts.conf становятся понятными причины ошибок:

AH00112: Внимание: DocumentRoot [C: /Apache24/docs/dummy-host.example.com] не существует
AH00112: Внимание: DocumentRoot [C: /Apache24/docs/dummy-host2.example.com] не существует

В частности, видно, что сервер Apache не может обратится к папкам примеров сайтов:
dummy-host.example.com
dummy-host2.example.com
Которые должны быть размещены в каталоге хостов - C: /Apache24/docs/.

Доменные имена - dummy-host.example.com и dummy-host2.example.com (dummy - кукла, example - образец) — по многолетней традиции, используются для примера и их необходимо изменить.
Внесение изменений в файл конфигурации сервера Apache — httpd-vhosts.conf
Существует два способа конфигурирования Apache для поддержки некоторого числа виртуальных хостов:
  • виртуальные хосты на основе имени (более одного веб - сайта по IP - адресу)
  • виртуальные хосты на основе IP (IP - адрес для каждого веб - сайта)

Возможен и смешанный вариант конфигурирования.

Виртуальные хосты основанные на адресе IP.
Первый шаг заключается в создании блока <VirtualHost> из комбинации адреса-IP и номера порта для каждого отдельного узла.
Пример — <VirtualHost 127.0.0.8:80> - привязывает виртуальные хосты к адресу -127.0.0.8 и 80-му порту:

namesite.ru — это временное имя (доменное имя) для разрабатываемого (тестируемого, отлаживаемого) сайта. Которое, после настройки веб-сервера Apache, можете заменить на выбранное вами.

Ни один сайт, в сети WWW, не может иметь IP-адрес из диапазона 127.0.0.1 — 127.255.255.255

Поэтому, в секциях - <VirtualHost *:80> вместо символа " * " нужно указать IP-адрес из из указанного диапазона.

Для обращения к вашему сайту по доменному имени, например - namesite.ru, нужно, в файле конфигурации httpd-vhosts.conf, создать секцию <VirtualHost>. В директивах которой указать пути к каталогу, подкаталогам и папкам вашего сайта.

Внесите изменения в файл httpd-vhosts.conf, как показано ниже.

Все записи, за исключением выделенных красным цветом, должны быть закомментированы. Строки начинающиеся с символа '#' - это комментарии.


Если вы создали секцию для домена www.namesite.ru (namesite.ru) и хотите добавить виртуальный хост www.namesite1.ru, то просто удалите символ комментария '#', со строк с 52 по 69.

Для проверки файлов конфигурации на синтаксические ошибки, используется команда — httpd.exe -t.

Проверить файл конфигурации виртуальных хостов можно с помощью команды — httpd.exe -S.

Директива — команда конфигурации, которая контролирует один или несколько аспектов поведения сервера Apache.

Компилирование и установка сервера Apache


include virtual="/cgi-bin/ave/av.pl"