В конфигурационном файле Apache виртуальный хост может быть настроен либо на прослушивание всех интерфейсов и портов (`*:80`), либо на определенный IP-адрес и порт. Когда вы указываете имя домена (`domain.ru:80`) в директиве `<VirtualHost>`, вы фактически указываете Apache привязаться к IP-адресу, соответствующему данному доменному имени, который он должен разрешить через DNS.
В большинстве случаев для конфигурации виртуальных хостов используется обозначение `*:80`. Это подходит для большинства настроек, так как оно говорит Apache принимать запросы на любом сетевом интерфейсе сервера. Это упрощает распределение запросов по доменным именам на основании заголовков `Host`, предоставляемых клиентами.
Если ваш конфиг с `<VirtualHost domain.ru:80>` не работает, вероятно, это связано с тем, что Apache не может разрешить домен `domain.ru` в IP-адрес на момент запуска или не имеет прав привязаться к разрешенному IP-адресу. Если сервер настроен на использование динамического IP или за NAT, то он может не знать ассоциированный с доменом внешний IP, который определен у вашего DNS-провайдера.
Чтобы настроить виртуальные хосты для `domain.ru` и `domain2.ru`, вам следует создать два блока конфигурации `<VirtualHost *:80>`, один для каждого домена:
```apache
<VirtualHost *:80>
ServerName domain.ru
ServerAlias www.domain.ru
DocumentRoot /var/www/domain.ru
<Directory /var/www/domain.ru>
AllowOverride All
Require all granted
</Directory>
# Остальные настройки...
</VirtualHost>
<VirtualHost *:80>
ServerName domain2.ru
ServerAlias www.domain2.ru
DocumentRoot /var/www/domain2.ru
<Directory /var/www/domain2.ru>
AllowOverride All
Require all granted
</Directory>
# Остальные настройки...
</VirtualHost>
```
Убедитесь, что у вас установлены DNS-записи для `domain.ru` и `domain2.ru`, чтобы они указывали на IP-адрес вашего веб-сервера Apache.
После изменения конфигурации Apache необходимо перезапустить сервер, чтобы изменения вступили в силу:
```bash
sudo apachectl restart
```
или для некоторых систем:
```bash
sudo service apache2 restart
```
Не забудьте также проверить конфигурацию на предмет ошибок, прежде чем перезапускать Apache:
```bash
sudo apachectl configtest
```
Это сообщит вам, если есть какие-либо синтаксические ошибки в ваших конфигурационных файлах.