Два сайта на одном IP в Apache2.

Недавно мне потребовалось сделать два сайта на одном IP и пришлось  разбираться как это сделать. Для примера есть у нас два сайта с  доменными именами example.com и old.example.com. Apache нам позволяет разделать сайты по IP и по DNS имена, а так  же комбинировано. Перейдем к настройке :

<VirtualHost *:80>  

Этой опции мы задаем ip адрес и порт сайта. То есть, если бы у нас были разные ip проблем не было бы. Пишем ip  и радуемся жизни. * значит VirtualHost слушает все доступные ip.

ServerName example.com

Вот это уже интересней . Имя сервера, сюда мы пишем именно DNS имя хоста. Вот тут то и есть решение нашей проблемы. Вводя имя сайта в браузере мы спрашиваем именно этот сайт  и обращаясь по ip сайта браузер сообщает еще и его имя  серверу Apache. Как раз указанное в этой опции.

ServerAlias  www.example.com

Альтернативные имена хоста, используемое при сопоставлении запросов имен-виртуальных хостов. Собственно тут можно указать альтернативное имя хоста.

Конечно не забудьте создать папку для нового сайта и выставить права на файлы и папку.

<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot «/www/example»
</VirtualHost>

<VirtualHost *:80>
ServerName old.example.com
ServerAlias www.old.example.com
DocumentRoot «/www/old.example»
</VirtualHost>

<VirtualHost *:80>
ServerName local
DocumentRoot «/www/local»
</VirtualHost>

Вот собственно получилось у нас три сайта на одном IP, причем если кто то  ведет просто ip сервера то попадет на сайт local.