Posts Tagged ‘DNS’

Hosting Tricks: Как делегировать управление сабдоменом внешнему DNS-серверу

Posted by Alexey Kovyrin under Admin-tips · english

В одном из моих предыдущих постов я рассказывал о дешевом способе хостинга неограниченного количества доменов на одном хостинг-аккаунте. Но иногда хостинг-провайдеры требуют, чтобы парковку домен, который будет использоваться для алиасов, был припаркован на DNS-серверах провайдера. Для примера, хостинговая платформа, созданная мной и используемая на сервисе Free Adult hosting Servik.com требует, чтобы пользовательские NS-записи указывали на собственные сервера провайдера. Что же делать, если Вам не хочется парковать весь домен на сервер провайдера и Вы хотите разместить на их серверах только какой-то один сабдомен?

Существует простое и очень эффективное решение, описанное далее.

Для начала, давайте рассмотрим типичную DNS-конфигурацию. Типичный домен имеет следующие записи:

  • SOA – запись, содержащая контактную информацию о домене, а также различные временные характеристики для записей домена.
  • NS – записи с IP-адресами для DNS-серверов домена.
  • MX – записи, содержащие IP-адреса или символьные имена для почтовых серверов домена.
  • A – записи с IP-адресами хостов домена и его сабдоменов.
  • CNAME – минонимы для A-записей.

Когда Вы просите свою систему DNS о резолвинге некоторого символьного имени в IP-адрес и это имя оказывается сабдоменом какого-либо домена (как blog.kovyrin.net или mail.google.com), ваш DNS-сервер пытается получить NS-записи для этого сабдомена (например, blog.kovyrin.net) и потом, если такие записи не найдены, он ищет записи для NS-серверов родительского домена (kovyrin.net). В такой приведенной выше типичной конфигурации Вы не сможете передать управление определенным сабдоменом стороннему DNS-серверу. Вы сможете переносить только весь домен между различными DNS-серверами.

Но давайте попробуем добавить следующую запись в Ваше зону:

    ....
    subdomain.domain.com IN NS off-site.dns-server.com.
    ....

Теперь все записи для subdomain.domain.com будут переправляться к серверу off-site.dns-server.com и этот сервер может свободно манипулировать этим самдоменом и создавать любые А-записи в нем.

Hosting Tricks: Как привязать неограниченное количество доменов к одному хостинг-аккаунту

Posted by Alexey Kovyrin under Admin-tips · english

Иногда нам бывает нужно использовать существующий хостинг-аккаунт для (возможно, временного) размещения другого сайта на нем. Но что делать, если хостинг-провайдер разрешает создание только одного корневого каталога и привязываение алиасов к каталогу, в котором лежит главный сайт (как это делает, например, компания GoDaddy.com)? Мы можем использовать описанный ниже трюк с Apache+mod_rewrite для размещения неограниченного количества доменов в одном каталоге хостинга.

Для начала, нам нужно, чтобы новый домен указывал на IP-адрес хостингового сервера. Если адрес сервера статичен, мы можем просто сделать A-запись в панели управления нашей DNS-зоной:

    new-domain.com  IN A IP.ADD.RE.SS

Если Вы не знаете IP-адрес хостингового сервера или этот адрес не постоянен (например, из-за специфичных технологий балансировки нагрузки, используемых Вашим хостинг-провайдером), Вы можете истользовать простой трюк с CNAME-записью в Вашей DNS-зоне:

     new-domain.com  IN CNAME already-hosted-domain.com.

После завершения первого этапа настройки у нас есть домен new-domain.com, указывающий на используемый хостинг-сервер. Теперь нам необходимо добавить поддержку нашего нового домена к этому серверу. Это можно сделать при помощи опции “Domain aliases” в панели управления хостингом или какой-нибудь другой опции, имеющей такое же значение у используемого хостинг-провайдера.

После того, как мы ассоциировали наше новое доменное имя с существующим каталогом на хостинговом сервере (/hosting/dir), единственное, что нам необходимо сделать – это заставить хостинговый сервер использовать некоторый подкаталог для всех запросов к домену new-domain.com (/hosting/dir/new-domain). Для того, чтобы получить такой эффект, нам нужно создать файл .htaccess в каталоге /hosting/dir и поместить в него следующий код:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} !^/new-domain/
    RewriteCond %{HTTP_HOST} new-domain\.com$
    RewriteRule (.*) http://already-hosted-domain.com/new-domain/$1 [L]

Вот и все! После создания файла все запросы к сайту http://new-domain.com/ будут перенаправляться в каталог /hosting/dir/new-domain.