У меня вопрос по настройке серверов.
Предположим, у меня есть несколько веб-сайтов для размещения.
foo.com
bar.com
hello.com
Я могу иметь или не иметь для них определенные серверы. Допустим, произвольная конфигурация выглядит примерно так (с соответствующим регистратором домена)
foo.com A 1.1.1.1
bar.com A 1.1.1.2
hello.com A 1.1.1.1
Я бы хотел дать каждому веб-сайту универсальный домен, на который он будет указывать, вместо IP (поскольку IP может меняться).
что-то вроде следующего.
foo.com CNAME service.com
bar.com CNAME service.com
hello.com CNAME service.com
Насколько я понял о DNS,
В конечном итоге я хотел бы добиться того, чтобы, если бы я однажды разместил hello.com с другого сервера, мне нужно было бы изменить только одно место на сервере, а не сказать клиенту, чтобы он изменил свою конфигурацию DNS.
Я использую rackspace, у них еще есть так называемый обратный DNS. Это полезно?
Я заметил для Google Apps - мы всегда указываем на ghs.google.com, и они перенаправляют запрос на соответствующий IP-адрес. Так что это должно быть возможно, но я просто не могу понять, как этого добиться.
Вам понадобится отдельный cname для каждого сайта. Что-то вроде:
foot.com CNAME foo.com.service.com
bar.com CNAME bar.com.service.com
hello.com CNAME hello.com.service.com
Вам нужна запись A для каждого сервера. (Используя стандартные данные документации.)
host1.example.com. A 192.0.32.11
host2.example.com. A 192.0.32.12
Затем вы можете использовать записи CNAME, чтобы указать сервер на соответствующий сервер. Разделяю хосты по вашим адресам.
www.foo.com. CNAME host1.example.com.
www.bar.com. CNAME host2.example.com.
www.hello.com. CNAME host1.example.com.
На ваших серверах используйте определения виртуального хоста на вашем веб-сервере для определения доступных веб-сайтов. Нет значительных штрафов за определение неиспользуемых виртуальных хостов, поэтому вы можете настроить сайты на нескольких серверах, но предоставлять записи DNS только для одного.
Если вы хотите обрабатывать такие домены, как foo.com, для которых требуется более одной записи DNS. Вам нужно использовать записи A. Есть несколько способов сделать это. Иметь запись A с тем же адресом, что и хост, обслуживающий домен.
foo.com A 192.0.32.11
bar.com A 192.0.32.12
hello.com A 192.0.32.11
Другой подход - использовать сервер для перенаправления доменов на их www
поддомены. Это может быть то же самое, что и один или несколько хостов, указанных выше.
foo.com. A 192.0.32.5
bar.com. A 192.0.32.5
hello.com. A 192.0.32.5
Серьезно подумайте о настройке записей MX для таких доменов, как foo.bar. Также рассмотрите SPF для обеих версий домена. Если ваш почтовый сервер mail.example.net
эти записи должны работать (записи SPF являются необязательными и могут не приниматься старыми DNS-серверами.):
foo.bar. MX 10 mail.example.net.
foo.bar. TXT 'v=spf1 mx -all'
foo.bar. SPF 'v=spf1 mx -all'
www.foo.bar. TXT 'v=spf1 -all'
www.foo.bar. SPF 'v=spf1 -all'
В приведенных выше записях SPF указано, что только MX будет отправлять электронную почту для домена. foo.bar
, и ни одна почта не должна иметь домен www.foo.bar
. Для доменов, которые не исходят из электронной почты, удалите mx из записей TXT и SPF. Видеть http://www.openspf.org или моя статья о SPF для более подробной информации.
Помните, что данные домена кешируются. При перемещении статических сайтов оставьте сайт на старом хосте, пока не перестанет поступать трафик. Перемещать сайты с динамическим контентом сложнее.
Имейте в виду, что вы не сможете использовать CNAME для доменов второго уровня, таких как «example.com», потому что они должны иметь записи записи SOA.
Чтобы настроить DNS для вашего домена
На Dreamhost убедитесь, что серверы имен настроены на серверы имен Dreamhost (они должны быть по умолчанию). Затем настройте с ними DNS (должна быть панель управления для настройки DNS-записей для домена).
Некоторая информация
CNAME просто указывают на имена хостов; эти имена хостов должны быть сконфигурированы с IP-адресами (т. е. должны иметь запись A, указывающую им на IP).
Если у вас есть несколько имен хостов, которые необходимо сопоставить с одним и тем же IP-адресом, может быть проще настроить одно имя хоста (A), чтобы указывать на этот IP-адрес, а затем все другие имена хостов CNAME на это имя хоста (A).
Если у вас есть несколько имен хостов, которые должны указывать на разные IP-адреса, CNAME мало пригодится.
Допустим, у вас есть foo.com, bar.com, hello.com и service.com, и вы хотите указать им всем один и тот же IP-адрес (принимая во внимание комментарий @ ceejayoz о корневых доменах и CNAMES). Вам нужно будет настроить одну запись A, чтобы указать имя хоста (например, service.com) на IP-адрес, а затем настроить CNAME для www.bar.com, www.foo.com и www.hello.com, чтобы они указывали на service.com.
Для этого вам потребуется доступ к записям DNS для foo.com, bar.com, hello.com и service.com (поэтому, если вы зарегистрировали все эти домены в Dreamhost, вам необходимо настроить их все для использования Dreamhost. DNS-серверов, затем настройте записи DNS для каждого из них.
Конкретный ответ на ваш вопрос
Однако вы упомянули, что хотите иметь возможность изменять IP-адрес для одного домена, не влияя на другой; в этой ситуации вам необходимо настроить CNAME для каждого доменного имени. Или вы можете использовать обратный прокси (хотя это добавляет дополнительную сложность). С обратным прокси-сервером вы можете иметь все домены, использующие один и тот же IP-адрес, независимо от того, на каком сервере они находятся (обратный прокси будет перенаправлять запрос на правильный сервер в зависимости от того, какой домен запрашивается). Вероятно, это то, что делают Google Apps.
Обратный DNS не поможет вам в этом, но он полезен (особенно для доставки электронной почты). Я не буду вдаваться в подробности, но вы должны прочитать об этом!