В статье описывается простой вариант размещения на одном внешнем IP-адресе нескольких сайтов.
Более новая и полная версия статьи находится здесь.
Итак переходим к редактированию httpd.conf.
# Включаем использование основанных на именах виртуальных хостов на 80-ом порту NameVirtualHost *:80 # ВАЖНО: Первая запись VirtualHost забирает на себя все запросы не подошедшие под # ServerName или ServerAlias в следующих записях, те является дефолтным сервером # для группы. # В первой записи совсем не обязательно задавать какие-либо параметры, они будут # равносильны общим параметрам всего севера <VirtualHost *:80> ServerAdmin admin@domain.com DocumentRoot /var/www/html ServerName Default </VirtualHost> # Описание для сайта site-one.ru <VirtualHost *:80> ServerAdmin admin@site-one.ru DocumentRoot /sites/site-one.ru/htdocs # Основное имя сайта ServerName site-one.ru # Дополнительный список имен по которым можно будет обращаться к сайту ServerAlias site-td.ru # Куда писать логи относящиеся к site-one.ru ErrorLog /sites/site-one.ru/logs/error_log CustomLog /sites/site-one.ru/logs/access_log common </VirtualHost> # Описание для сайта site-two.ru <VirtualHost *:80> ServerAdmin admin@site-two.ru DocumentRoot /sites/site-two.ru/htdocs ServerName site-two.ru ErrorLog /sites/site-two.ru/logs/error_log CustomLog /sites/site-two.ru/logs/access_log common </VirtualHost>
Итого у нас получились два сайта на одном сервере с одним внешним IP-адресом. При обращении по ссылкам http://site-one.ru и http://site-td.ru мы открываем сайт находящийся в директории /sites/site-one.ru/htdocs, при обращении по ссылке http://site-two.ru мы открываем сайт находящийся в директории /sites/site-two.ru/htdocs, при обращении к сайтам по любом другому имени или по IP-адресу мы переходим на дефолтный сайт в /var/www/html, в принципе его можно сделать пустым.
Также есть очень полезная функция Redirect, если при обращении по адресу http://site-three.ru нужно переадресовать человека на сайт http://site-one.ru
# Переадресация с site-three.ru на site-one.ru <VirtualHost *:80> # Указываем директорию сайта на который будем переадресовывать DocumentRoot /sites/site-one.ru/htdocs # Имя сайта с которого переадресовываем ServerName site-three.ru # Куда переадресовывать Redirect / http://site-one.ru </VirtualHost>