Каким образом реализовать схему работы веб-сервера для размещения на нем нескольких сайтов с доступом к каждому по своему имени: Например: http://www.aaa.ru - основной домен, http://bbb.aaa.ru и http://ccc.aaa.ru и т.д. субдомены. При этом у сервера ай-пи адрес один. Доменное имя зарегистрировано на портале www.webnames.ru. На сервере установлена система - "школьный сервер".
Где-то прочитал:
"Даже если у вас один сайт - он должен быть виртуальным."В школьном сервере надо начинать с того, чтобы в файле default.conf найти и поправить параметр RewriteCond %{HTTPS} != on на off. Это для того чтобы можно было вообще открывать http:// , а не переключалось на https://
Когда вы добиваетесь , что на вашем сервере по адресу адресу
http://192.168.0.1 и видна тестовая страница It Works , то начинаем делать виртуальные хостинг:
Шаг № 1: Разрешаем виртуальные сайты:
В file /etc/httpd2/conf/sites-start.d/000-default.conf
ports_all=yes
default=yes
vhosts=no
редактируем последнюю строку
vhosts=yes
Для применения изменений запускаем
a2chkconfig
Шаг № 2:
Пусть DNS указывает один и тот же IP -адрес для нескольких хостов: Пинг с любого компьютера в инете посылает на один и тот же хост. Проверяем:
ping vvvv.ru
PING vvvv.ru (81.81.81.81) 56(84) bytes of data.
64 bytes from 81.81.81.81: icmp_seq=1 ttl=64 time=0.213 ms
ping pppp.ru
PING pppp.ru (81.81.81.81) 56(84) bytes of data.
64 bytes from 81.81.81.81: icmp_seq=1 ttl=64 time=0.213 ms
ping stat.pppp.ru
PING stat.ppppp.ru (81.81.81.81) 56(84) bytes of data.
64 bytes from 81.81.81.81: icmp_seq=1 ttl=64 time=0.213 ms
Пусть в локальной сети наш сервер имеет адрес 192.168.0.1
и при помощи BIND локальные машины видят изнутри виртуальные хосты под этим адресом.
в file /etc/httpd2/conf/sites-available/vhosts.conf дописываем:
<VirtualHost *:80>
#ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/vhosts/vvvv
ServerName vvvv..ru
#ServerAlias www.vvvv.ru
ErrorLog /var/log/httpd2/vvvv-error_log
CustomLog /var/log/httpd2/vvvv-access_log common
</VirtualHost>
#
<VirtualHost *:80>
#ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot /var/www/vhosts/pppp
ServerName pppp.ru
ErrorLog /var/log/httpd2/pppp-error_log
CustomLog /var/log/httpd2/pppp-access_log common
</VirtualHost>
<VirtualHost *:80>
#ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot /var/www/vhosts/stat
ServerName stat.pppp.ru
ErrorLog /var/log/httpd2/stat-error_log
CustomLog /var/log/httpd2/stat-access_log common
</VirtualHost>
перезапускаем:
service httpd2 restart
В директориях
/var/www/vhosts/vvvv
/var/www/vhosts/pppp
/var/www/vhosts/stat
нужные нам сайты, которые видны снаружи и изнутри по именам.
а чисто по адресу 192.168.0.1 оказываемся в /var/www/html