Мы размещаем множество веб-приложений для наших клиентов. Очевидно, что они хотят использовать свои собственные домены для ссылки на эти приложения, обычно они хотят, чтобы любой пользователь либо вводил, http://www.customer1.example
либо http://customer1.example
переходит в их веб-приложение.
Ситуация, с которой мы сталкиваемся, заключается в том, что нам необходимо иметь возможность изменить IP-адреса в ближайшем будущем. И мы не хотим полагаться на то, что заказчик внесет изменение в свои домены. Поэтому мы подумали, что использование CNAME
записей будет работать, но, как мы выяснили, CNAME
записи не будут работать для корневого домена.
В принципе:
customer1.example IN CNAME customer1.mycompanydomain.example //this is invalid as the RFC
www.customer1.example IN CNAME customer1.mycompanydomain.example //this is valid and will work
Мы хотим иметь возможность изменять IP-адрес customer1.mycompanydomain.example
или A
запись, и наши клиенты будут следить за этой записью, которую мы контролируем.
в нашем DNS это будет выглядеть так:
customer1.mycompanydomain.example IN A 192.0.2.1
Любые идеи?
источник
Ответы:
Причина, по которой этот вопрос все еще часто возникает, заключается в том, что, как вы упомянули, где-то кто-то, считающийся важным, написал, что RFC заявляет, что доменные имена без поддомена перед ними недействительны. Однако если вы внимательно прочитаете RFC, вы обнаружите, что это не совсем то, о чем говорится. Фактически, RFC 1912 гласит:
Некоторые узлы DNS предоставляют способ получить функциональность, подобную CNAME, на вершине зоны (уровень корневого домена для имени голого домена) с использованием настраиваемого типа записи. К таким записям относятся, например:
Для каждого провайдера настройка аналогична: укажите в записи ALIAS или ANAME для вашего верхнего домена example.domain.com, как если бы вы использовали запись CNAME. В зависимости от поставщика DNS пустое значение или значение @ Name определяет вершину зоны.
ALIAS или ANAME или @ example.domain.com.
Если ваш DNS-провайдер не поддерживает такой тип записи, и вы не можете переключиться на тот, который поддерживает, вам нужно будет использовать перенаправление поддоменов, что не так сложно, в зависимости от протокола или программного обеспечения сервера, которое должно это делать. ,
Я категорически не согласен с утверждением, что это делают только «админы-любители» или подобными идеями. Это простой вопрос: «Что должны делать имя и его служба?» сделка, а затем адаптировать конфигурацию DNS для удовлетворения этих пожеланий; Если ваши основные услуги - это Интернет и электронная почта, я не вижу ДЕЙСТВИТЕЛЬНОЙ причины, по которой навсегда отказаться от CNAME было бы проблематично. В конце концов, кто предпочтет @ subdomain.domain.org вместо @ domain.org? Кому нужен www, если вы уже настроили сам протокол? Нелогично предполагать, что использование имени корневого домена было бы недопустимым.
источник
Использование CNAME для корневой записи технически не противоречит RFC, но имеет ограничения, означающие, что это не рекомендуется.
Обычно ваша корневая запись содержит несколько записей. Скажем, 3 для ваших серверов имен, а затем один для IP-адреса.
Согласно RFC:
И согласно документу IETF «Общие ошибки работы и конфигурации DNS»:
Ссылки:
источник
NS
иSOA
записи и , следовательно , не может иметьCNAME
записи.Я не знаю, как им это сходит с рук или какие у них могут быть отрицательные побочные эффекты, но я использую Hover.com для размещения некоторых из моих доменов и недавно настроил вершину моего домена как CNAME. Их инструмент редактирования DNS вообще не жаловался, и мой домен успешно разрешается через назначенный CNAME.
Вот что Dig показывает мне для этого домена (фактический домен запутан как mydomain.com):
источник
Моя компания делает то же самое для ряда клиентов, где мы размещаем для них веб-сайт, хотя в нашем случае это xyz.company.com, а не www.company.com. Мы заставляем их установить запись A на xyz.company.com, чтобы указать на IP-адрес, который мы им выделяем.
Что касается того, как вы могли бы справиться с изменением IP-адреса, я не думаю, что есть идеальное решение. Вот некоторые идеи:
Используйте балансировщик нагрузки NAT или IP и дайте своим клиентам принадлежащий ему IP-адрес. Если IP-адрес веб-сервера необходимо изменить, вы можете обновить NAT или балансировщик нагрузки,
Предложите также услугу хостинга DNS и попросите своих клиентов разместить свой домен у вас, чтобы вы могли обновлять записи A,
Попросите ваших клиентов установить свою запись A для одного основного веб-сервера и использовать перенаправление HTTP для веб-запросов каждого клиента.
источник
Sipwiz верен, единственный способ сделать это правильно - это гибридный подход HTTP и DNS. Мой регистратор является перепродавцом Tucows, и они предлагают переадресацию корневого домена в качестве бесплатной услуги с добавленной стоимостью.
Если ваш домен blah.com, они спросят вас, куда вы хотите переадресовать домен, и вы наберете www.blah.com. Они назначают запись A своему серверу apache и автоматически добавляют blah.com в качестве виртуального хоста DNS. Vhost отвечает ошибкой HTTP 302, перенаправляя их на правильный URL. Это просто скрипт / настройка, и с ним может справиться младший уровень, иначе оборудование было бы утилизировано.
В качестве примера выполните следующую команду: curl -v eclecticengineers.com
источник
Вы должны поставить точку в конце внешнего домена, чтобы он не думал, что вы имеете в виду customer1.mycompanydomain.com.localdomain;
Так что просто измените:
к
источник
customer1.com
, это работает ... но интерпретируется как указание CNAMe для поддоменаcustomer1.com.customer1.com
. Если я добавлю точку к первому элементу, запись будет интерпретироваться правильно, но больше не будет работать. Я не вижу здесь решения.Я вижу, что readytocloud.com размещен на Apache 2.2.
Существует гораздо более простой и эффективный способ перенаправить сайт без www на сайт с www в Apache.
Добавьте следующие правила перезаписи в конфиги Apache (внутри виртуального хоста или снаружи. Не имеет значения):
Или следующие правила перезаписи, если вы хотите, чтобы URL-адреса с сайта без www на сайт с www отображались один к одному:
Обратите внимание: для этого необходимо загрузить модуль mod_rewrite. К счастью, readytocloud.com работает на платформе CentOS, которая по умолчанию загружает mod_rewrite.
У нас есть клиентский сервер под управлением Apache 2.2 с немногим менее 3000 доменов и почти 4000 перенаправлений, однако нагрузка на сервер колеблется в районе 0,10–0,20.
источник
Спасибо sipwiz и MrEvil. Мы разработали PHP-скрипт, который анализирует вводимый пользователем URL и вставляет его
www
в начало. (например, если клиент заходит на kiragiannis.com , он перенаправляет на www.kiragiannis.com ). Итак, наш клиент указывает свой корень (например,customer1.com
дляA
записи, где находится наш веб-перенаправитель), а затемwww
CNAME
на реальнуюA
запись, управляемую нами.Ниже код на случай, если вы заинтересованы в будущем нас.
источник
http://
удаления, ни/
($urlPagePath
всегда будет пустым). См. Httpd.apache.org/docs/2.4/expr.html . Из-за того, что код пытается избавиться от поддомена, он также не будет работать для таких вещей, какwww.example.co.uk
where,co.uk
которое следует рассматривать в целом. Он также не поддерживает HTTPS. И, наконец, использование PHP просто перенаправления HTTP, когда любой веб-сервер может сделать это в конфигурации, слишком сложно. Короче говоря, это определенно не должно быть подтвержденным ответом на этот вопрос.