Лабораторные работы по ПО/Настройка виртуальных хостов в Apache: различия между версиями

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(Создание DNS-записей для виртуальных хостов)
(Настройка виртуальных хостов в Apache)
 
(не показано 5 промежуточных версий 2 участников)
Строка 1: Строка 1:
 
Виртуальные хосты в Apache
 
Виртуальные хосты в Apache
  
Apache - первый web-сервер, в которос появилась возможность на одном IP адресе размещать несколько сайтов. В 1993 году ... реализовал возможность создавать виртуальные хосты, благодаря чему на одном физическом сервере появилась возможность размещать несколько одновременно функционирующих сайтв. Благодаря этому Apache стал  чамым распространенным web-серверов в сети Интернет.
+
Apache - первый web-сервер, в котором появилась возможность на одном IP адресе размещать несколько сайтов. В 1993 году ... реализовал возможность создавать виртуальные хосты, благодаря чему на одном физическом сервере появилась возможность размещать несколько одновременно функционирующих сайтов. Благодаря этому Apache стал  самым распространенным web-серверов в сети Интернет.
  
Для правильного функционирования виртуальных хостов в Apache сначало нужно создать правильные DNS записи соответствующие именам виртуальных хостов и ссылающихся на IP адрес вашего сервера. Начнем именно с этого.
+
Для правильного функционирования виртуальных хостов в Apache сначала нужно создать правильные DNS записи соответствующие именам виртуальных хостов и ссылающихся на IP адрес вашего сервера. Начнем именно с этого.
  
 
==Создание DNS-записей для виртуальных хостов==
 
==Создание DNS-записей для виртуальных хостов==
Строка 13: Строка 13:
  
 
  @      IN    SOA  ns1.srv1.lab.nntc. root.srv1.lab.nntc. (
 
  @      IN    SOA  ns1.srv1.lab.nntc. root.srv1.lab.nntc. (
             20091123 ; серийный номер
+
             20091123 ; seriyniy nomer
               2M    ; обновление каждые 2 минуты
+
               2M    ; obnovlyat kahdie 2 minuty
               3M    ; повтор каждый 3 минуты
+
               3M    ; povtor kazdie 3 minuty
               1D    ; хранить 1 день
+
               1D    ; hranit 1 den
               30)  ; TTL записи — 30 минут
+
               30)  ; TTL zapisy - 30 minut
 
            
 
            
 
  @        IN NS      ns1.srv1.lab.nntc.
 
  @        IN NS      ns1.srv1.lab.nntc.
Строка 23: Строка 23:
 
  ns1      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'''
+
  '''site2 IN A 192.168.5.2'''
  
 
Проверим работоспособность новых DNS-записей с помощью комманды nslookup
 
Проверим работоспособность новых DNS-записей с помощью комманды nslookup
Строка 33: Строка 33:
  
 
==Настройка виртуальных хостов в Apache==
 
==Настройка виртуальных хостов в Apache==
Создав DNS-записи для наших виртуальных хостов можной переходить к настройке Apache.
+
Создав 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 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>
 
  </VirtualHost>
 +
 +
  
 
Наиболее важными параметрами, на которые стои обратить особое внимание, являются:
 
Наиболее важными параметрами, на которые стои обратить особое внимание, являются:
Строка 56: Строка 68:
 
*Тег '''<Directory>''' описывает права доступа к корневой директории хоста.
 
*Тег '''<Directory>''' описывает права доступа к корневой директории хоста.
  
Сохраним файл  и создадим корневую директорию для сайта site1.srv1.lab.nntc.
+
Сохраним файл и инициализируем сайт созданием мягкой ссылки в директорию 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 777 /var/www/site1  
+
sudo chown www-data /var/www/site1
 +
sudo chgrp www-data /var/www/site1
 +
  sudo chmod 764 /var/www/site1  
  
Теперь, перезапустим apache
+
И наконец, перезапустим 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 с названиями хостов в тексте страницы. Это позволить убедиться в получении данных для хоста из нужной директории.