Я обслуживаю несколько веб-сайтов для своих клиентов на одном сервере. Во время разработки я просто создаю поддомен в собственном домене. пример client.mydomain.example
. Часто у моих клиентов уже есть домен и электронная почта у другого провайдера. Я не хочу размещать электронную почту для своих клиентов.
Я пробовал три разных способа настройки DNS:
clientdomain.example
к www.clientdomain.example
а затем запись CNAME для www.clientdomain.exmple
чтобы указать на временный поддомен на моем сервере client.mydomain.example
. (*.)clientdomain.tld
на мой IP-адрес сервера, но оставив MX и тому подобное, чтобы указать на их текущий адрес электронной почты.Насколько я понимаю, у всех трех есть плюсы и минусы:
www
, и если у них уже есть сайт non-www
они могут пострадать от SEO-тисков (?). Также дополнительная запись CNAME плохо сказывается на скорости страницы.Сейчас я предпочитаю 1. Так как я думаю, что плюсы перевешивают минусы в большинстве моих случаев.
Есть ли другой способ перенаправить с домена на сервер без указания IP-адреса?
Уточнение: Решение 1 работает для меня, но оно работает медленнее из-за двух шагов, прежде чем перейти к окончательной записи A. В идеале я хотел бы указать на оба non-www
и www
в домен моего сервера, но, насколько я знаю, это невозможно с записью CNAME, верно?
Обратите внимание, что CNAME
это вообще не HTTP-перенаправление.
Только перенаправление здесь из example.com
к www.example.com
и его можно сделать постоянным. Дополнительный CNAME
находится на уровне DNS и будет кэшироваться, поэтому на самом деле это не влияет ни на производительность, ни на скорость сайта.
Ваш веб-сервер должен знать о клиентском домене, независимо от того, кто размещает DNS.
Вот почему я бы предпочел ваш случай №1 с лучшим пониманием:
www.example.com. CNAME client.example.net.
чтобы иметь возможность при необходимости изменить IP-адрес самостоятельно.client.example.net
в конфигурации вашего веб-сервера.В случае № 3 вы не просто будете технически размещать DNS-серверы, но также будете нести ответственность за выполнение обновлений всякий раз, когда клиенту потребуется новая сторонняя запись.
Итак, если я правильно понял, что вы хотите сделать, это иметь возможность после фазы разработки просто указать cname на ваш сервер (client.mydomain.tld), а все остальное обработать на своем собственном сервере.
Что я пробовал прямо сейчас в моей настройке с Cloudflare для управления записями DNS, так это просто поместить две записи cname: одну www.client.tld и одну client.tld. После этого вы можете обработать запрос на своем сервере и просто переписать URL-адрес в соответствии с конкретными потребностями.
Я бы также выбрал ваш вариант номер один, так как он самый простой в обращении.
И я также нашел здесь некоторую информацию об использовании записей CNAME: Следует ли использовать CNAME для поддоменов?