Лабораторные работы по ПО/Настройка виртуальных хостов в Apache: различия между версиями
Gumanoed (обсуждение | вклад) (Новая: Виртуальные хосты в Apache Apache - первый web-сервер, в которос появилась возможность на одном IP адресе разм...) |
Gumanoed (обсуждение | вклад) (→Настройка виртуальных хостов в Apache) |
||
(не показано 6 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
Виртуальные хосты в Apache | Виртуальные хосты в Apache | ||
− | Apache - первый web-сервер, в | + | Apache - первый web-сервер, в котором появилась возможность на одном IP адресе размещать несколько сайтов. В 1993 году ... реализовал возможность создавать виртуальные хосты, благодаря чему на одном физическом сервере появилась возможность размещать несколько одновременно функционирующих сайтов. Благодаря этому Apache стал самым распространенным web-серверов в сети Интернет. |
− | Для правильного функционирования виртуальных хостов в Apache | + | Для правильного функционирования виртуальных хостов в Apache сначала нужно создать правильные DNS записи соответствующие именам виртуальных хостов и ссылающихся на IP адрес вашего сервера. Начнем именно с этого. |
==Создание DNS-записей для виртуальных хостов== | ==Создание DNS-записей для виртуальных хостов== | ||
Строка 12: | Строка 12: | ||
nano /etc/bind/db.srv1 | nano /etc/bind/db.srv1 | ||
− | @ IN SOA | + | @ IN SOA ns1.srv1.lab.nntc. root.srv1.lab.nntc. ( |
− | + | 20091123 ; seriyniy nomer | |
− | + | 2M ; obnovlyat kahdie 2 minuty | |
− | + | 3M ; povtor kazdie 3 minuty | |
− | + | 1D ; hranit 1 den | |
− | + | 30) ; TTL zapisy - 30 minut | |
− | @ | + | @ 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''' | '''site1 IN A 192.168.5.2''' | ||
− | ''' | + | '''site2 IN A 192.168.5.2''' |
Проверим работоспособность новых DNS-записей с помощью комманды nslookup | Проверим работоспособность новых DNS-записей с помощью комманды nslookup | ||
Строка 33: | Строка 33: | ||
==Настройка виртуальных хостов в Apache== | ==Настройка виртуальных хостов в Apache== | ||
− | Создав DNS-записи для наших виртуальных хостов | + | Создав DNS-записи для наших виртуальных хостов можно переходить к настройке Apache. |
Для создания виртуальных хостов в Apache необходимо добавить запись с параметрами виртуального хоста в файл Давайте сделаем запись для первого виртуального хоста site1.srv1.lab.nntc. | Для создания виртуальных хостов в Apache необходимо добавить запись с параметрами виртуального хоста в файл Давайте сделаем запись для первого виртуального хоста site1.srv1.lab.nntc. | ||
− | nano /etc/apache2/... | + | nano /etc/apache2/sites-available/site1.srv1.lab.nntc |
+ | |||
+ | NameVirtualHost * | ||
+ | |||
+ | <VirtualHost *:80> | ||
+ | ServerAdmin site1.srv1.lab.nntc | ||
+ | ServerAlias site1.srv1.lab.nntc | ||
+ | ServerAdmin admin@site1.srv1.lab.nntc | ||
+ | DocumentRoot /var/www/site1 | ||
+ | |||
+ | <Directory /var/www/site1> | ||
+ | Options FollowSymLinks | ||
+ | AllowOverride All | ||
+ | Order allow,deny | ||
+ | allow from all | ||
+ | </Directory> | ||
+ | |||
+ | ErrorLog /var/log/apache2/site1.srv1.lab.nntc.log | ||
+ | CustomLog /var/log/apache2/site1.srv1.lab.nntc.log combined | ||
+ | ServerSignature On | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</VirtualHost> | </VirtualHost> | ||
+ | |||
+ | |||
Наиболее важными параметрами, на которые стои обратить особое внимание, являются: | Наиболее важными параметрами, на которые стои обратить особое внимание, являются: | ||
Строка 56: | Строка 68: | ||
*Тег '''<Directory>''' описывает права доступа к корневой директории хоста. | *Тег '''<Directory>''' описывает права доступа к корневой директории хоста. | ||
− | Сохраним файл | + | Сохраним файл и инициализируем сайт созданием мягкой ссылки в директорию sites-enabled |
+ | |||
+ | ln -s /etc/apache2/sites-available/site1.srv1.lab.nntc /etc/apache2/sites-enabled/site1.srv1.lab.nntc | ||
+ | |||
+ | Теперь создадим корневую директорию для сайта site1.srv1.lab.nntc. | ||
sudo mkdir /var/www/site1 | sudo mkdir /var/www/site1 | ||
− | sudo chmod | + | sudo chown www-data /var/www/site1 |
+ | sudo chgrp www-data /var/www/site1 | ||
+ | sudo chmod 764 /var/www/site1 | ||
− | + | И наконец, перезапустим apache | |
sudo /etc/init.d/apache2 restart | sudo /etc/init.d/apache2 restart | ||
Строка 67: | Строка 85: | ||
Попробуем зайти на новый виртуальный хост через web-браузер. Запустите на своем компьютере web-брайзер FireFox и в строке адреса введите http://site1.srv1.lab.nntc. Вы должны увидеть содержимое файла index.html, находящегося на вашем сервере в директории /var/www/site1. | Попробуем зайти на новый виртуальный хост через web-браузер. Запустите на своем компьютере web-брайзер FireFox и в строке адреса введите http://site1.srv1.lab.nntc. Вы должны увидеть содержимое файла index.html, находящегося на вашем сервере в директории /var/www/site1. | ||
− | По аналогии можно создать необходимые настройки в apache для хоста site2.srv1.lab.nntc. Создайте для каждого виртуального хоста свой файл index.html с названиями хостов в тексте страницы. | + | По аналогии можно создать необходимые настройки в apache для хоста site2.srv1.lab.nntc. Создайте для каждого виртуального хоста свой файл index.html с названиями хостов в тексте страницы. Это позволить убедиться в получении данных для хоста из нужной директории. |
Текущая версия на 09:21, 25 ноября 2009
Виртуальные хосты в 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 ; seriyniy nomer 2M ; obnovlyat kahdie 2 minuty 3M ; povtor kazdie 3 minuty 1D ; hranit 1 den 30) ; TTL zapisy - 30 minut @ 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/sites-available/site1.srv1.lab.nntc NameVirtualHost * <VirtualHost *:80> ServerAdmin site1.srv1.lab.nntc ServerAlias site1.srv1.lab.nntc ServerAdmin admin@site1.srv1.lab.nntc DocumentRoot /var/www/site1 <Directory /var/www/site1> Options FollowSymLinks AllowOverride All Order allow,deny allow from all </Directory> ErrorLog /var/log/apache2/site1.srv1.lab.nntc.log CustomLog /var/log/apache2/site1.srv1.lab.nntc.log combined ServerSignature On </VirtualHost>
Наиболее важными параметрами, на которые стои обратить особое внимание, являются:
- DocumentRoot - директория, в которой расположен основной каталог сайта;
- ServerName - имя сервера, на которое быдет "отзываться" ваш виртуальных хост. Если этого параметра нет - сайт будет доступен по ip указанному с теге <VirtualHost>, но Apache сможет обслуживать только этот один хост.
- ErrorLog и CustomLog задают имена файлов в которые будет записываться информация о подключении с ошибками и успешных подключениях клиентов.
- Тег <Directory> описывает права доступа к корневой директории хоста.
Сохраним файл и инициализируем сайт созданием мягкой ссылки в директорию sites-enabled
ln -s /etc/apache2/sites-available/site1.srv1.lab.nntc /etc/apache2/sites-enabled/site1.srv1.lab.nntc
Теперь создадим корневую директорию для сайта site1.srv1.lab.nntc.
sudo mkdir /var/www/site1 sudo chown www-data /var/www/site1 sudo chgrp www-data /var/www/site1 sudo chmod 764 /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 с названиями хостов в тексте страницы. Это позволить убедиться в получении данных для хоста из нужной директории.