Назад | Перейти на главную страницу

Путаница в отношении VHost и DNS Entry относительно конфигурации поддомена (Apache)

На моем Vserver я хотел бы настроить поддомен. Итак, у меня есть следующие записи в моей конфигурации apache vhost. Я хочу иметь свой сайт app1.example.com для запуска как собственного сайта, чтобы страницы и файлы имели домен, например app1.example.com/photo.jpg или app1.example.com/blog/.

<VirtualHost *:80>
  DocumentRoot /var/www/app1
  ServerName app1.example.com
<VirtualHost>

<VirtualHost *:80>
  DocumentRoot /var/www/example
  ServerName example.com
<VirtualHost>

<VirtualHost *:80>
  DocumentRoot /var/www/wildcard
  ServerName other.example.com
  ServerAlias *.example.com
<VirtualHost>

Но Зачем мне дополнительно нужен такой DNS? Разве я не установил это уже в моей конфигурации vhost?

Host        Type    Destination
app1        A       78.xx.xx.xx (my IP)
*           A       78.xx.xx.xx

Или мне нужно указать пункт назначения в такой каталог: app1.example.com Спасибо за совет!

Если у вас есть запись с подстановочными знаками, указывающая на IP-адрес вашего поддомена, вам не понадобится более конкретная app1 Запись, об этом позаботится подстановочный знак. Браузер пользователя отправляет:

Host: app1.example.com

Когда он делает запрос для этого домена, именно так Apache узнает, какой домен нужен клиенту. Запись с подстановочными знаками скажет браузеру отправить этот запрос на ваш сервер.

Хм, я думаю, что, возможно, часть проблемы заключается в использовании '=' при установке DocumentRoot. Если это не какой-то альтернативный синтаксис, который редко используется, документация apache, кажется, рекомендует использовать что-то вроде DocumentRoot / foo / bar, где / foo / bar - это корень документа, который вы хотите. Видеть http://httpd.apache.org/docs/2.1/mod/core.html#documentroot . Что касается вашей проблемы с DNS, браузер пользователя отправит заголовок хоста, который, если вы правильно настроили директиву NameVirtualHosts, приведет к использованию директивы VirtualHost с соответствующим ServerName или ServerAlias. Вы можете настроить свой DNS-сервер с использованием подстановочного знака «*» или определенных записей, либо того и другого - браузер по-прежнему будет отправлять соответствующий заголовок хоста.