Лабораторные работы по ПО/Настройка виртуальных хостов в Apache
Виртуальные хосты в Apache
Apache - первый web-сервер, в которос появилась возможность на одном IP адресе размещать несколько сайтов. В 1993 году ... реализовал возможность создавать виртуальные хосты, благодаря чему на одном физическом сервере появилась возможность размещать несколько одновременно функционирующих сайтв. Благодаря этому Apache стал чамым распространенным web-серверов в сети Интернет.
Для правильного функционирования виртуальных хостов в Apache сначало нужно создать правильные DNS записи соответствующие именам виртуальных хостов и ссылающихся на IP адрес вашего сервера. Начнем именно с этого.
Создание DNS-записей для виртуальных хостов
Создадим DNS записи для хостов site1.srv1.lab.nntc и site2.srv1.lab.nntc. Откроем файл зоны srv1.lab.nntc, обслуживаемый вашим сервером, и добавим записи о двух ноых хостах.
nano /etc/bind/db.srv1
@ IN SOA ns1.srv1.lab.nntc. root.srv1.lab.nntc. ( 20091123 ; серийный номер 2M ; обновление каждые 2 минуты 3M ; повтор каждый 3 минуты 1D ; хранить 1 день 30) ; TTL записи — 30 минут @ IN NS ns1.srv1.lab.nntc. @ IN A 192.168.5.2 ns1 IN A 192.168.5.2 site1 IN A 192.168.5.2 site2 IN A 192.168.5.2
Проверим работоспособность новых DNS-записей с помощью комманды nslookup
nslookup site1.srv1.lab.nntc nslookup site2.srv1.lab.nntc
В нашем примере в ответ вы должны получить ip адрес 192.168.5.2.
Настройка виртуальных хостов в Apache
Создав DNS-записи для наших виртуальных хостов можной переходить к настройке Apache.
Для создания виртуальных хостов в Apache необходимо добавить запись с параметрами виртуального хоста в файл Давайте сделаем запись для первого виртуального хоста site1.srv1.lab.nntc.
nano /etc/apache2/... <VirtualHost 192.168.5.1:80> ServerAdmin admin@site1.srv1.lab.nntc DocumentRoot /var/www/site1 ServerName site1.srv1.lab.nntc ErrorLog logs/site1 -error_log CustomLog logs/site1 -access_log common <Directory /var/www/site1/> AllowOverride none <Directory> </VirtualHost>
Наиболее важными параметрами, на которые стои обратить особое внимание, являются:
- DocumentRoot - директория, в которой расположен основной каталог сайта;
- ServerName - имя сервера, на которое быдет "отзываться" ваш виртуальных хост. Если этого параметра нет - сайт будет доступен по ip указанному с теге <VirtualHost>, но Apache сможет обслуживать только этот один хост.
- ErrorLog и CustomLog задают имена файлов в которые будет записываться информация о подключении с ошибками и успешных подключениях клиентов.
- Тег <Directory> описывает права доступа к корневой директории хоста.
Сохраним файл и создадим корневую директорию для сайта site1.srv1.lab.nntc.
sudo mkdir /var/www/site1 sudo chmod 777 /var/www/site1
Теперь, перезапустим apache
sudo /etc/init.d/apache2 restart
Попробуем зайти на новый виртуальный хост через web-браузер. Запустите на своем компьютере web-брайзер FireFox и в строке адреса введите http://site1.srv1.lab.nntc. Вы должны увидеть содержимое файла index.html, находящегося на вашем сервере в директории /var/www/site1.
По аналогии можно создать необходимые настройки в apache для хоста site2.srv1.lab.nntc. Создайте для каждого виртуального хоста свой файл index.html с названиями хостов в тексте страницы. Этто позволить убедиться в получении данных для хоста из нужной директории.