Скажи, что у меня есть mydomain.com:
Лучше использовать вариант А:
[A] mydomain.com 123.45.67.89
[A] www.mydomain.com 123.45.67.89
или вариант Б:
[A] mydomain.com 123.45.67.89
[CNAME] www.mydomain.com mydomain.com
Каким будет эффект от выбора одного за другим?
Второй вопрос: скажем, я хочу иметь поддомен в blog.mydomain.com. И я установил для него следующие записи:
[A] blog.mydomain.com 123.45.67.89
И сделать его доступным, когда пользователь набирает www.blog.mydomain.com, Я также вставляю следующую запись:
[A] www.blog.mydomain.com 123.45.67.89
Вопрос в том, это обычная практика? Или есть способы сделать это лучше? Я хочу достичь (доступ пользователя -> перенаправление):
mydomain.com -> mydomain.com
www.mydomain.com -> mydomain.com
blog.mydomain.com -> blog.mydomain.com
www.blog.mydomain.com -> blog.mydomain.com
other.mydomain.com -> error
Ура!
Как правило, лучшая практика для простоты обслуживания выглядит примерно так:
[A] mydomain.com 123.45.67.89
[CNAME] www.mydomain.com mydomain.com
[CNAME] blog.mydomain.com mydomain.com
[CNAME] www.blog.mydomain.com mydomain.com
[A] mail.mydomain.com 123.45.67.89
[MX] mydomain.com mail.mydomain.com
Это позволяет вам изменить свою запись A для mydomain.com, не нарушая вашу почтовую запись или не меняя каждый поддомен вручную.
Вам также необходимо настроить свой веб-сервер для ответа на эти имена. Вот пример этого в Apache:
NameVirtualHost 123.45.67.89:80
<VirtualHost 123.45.67.89:80>
DocumentRoot /var/www/html/mydomain.com
ServerName mydomain.com
ServerAlias www.mydomain.com
ErrorLog logs/mydomain.com-error_log
CustomLog logs/mydomain.com-access_log combined
</VirtualHost>
<VirtualHost 123.45.67.89:80>
DocumentRoot /var/www/html/blog.mydomain.com
ServerName blog.mydomain.com
ServerAlias www.blog.mydomain.com
ErrorLog logs/blog.mydomain.com-error_log
CustomLog logs/blog.mydomain.com-access_log common
</VirtualHost>
Для упомянутых вами перенаправлений:
Вопрос в том, это обычная практика? Или есть способы сделать это лучше? Я хочу достичь (доступ пользователя -> перенаправление):
mydomain.com -> mydomain.com www.mydomain.com -> mydomain.com blog.mydomain.com -> blog.mydomain.com www.blog.mydomain.com -> blog.mydomain.com other.mydomain.com -> error
Чтобы фактически изменить URL-адрес, отображаемый в адресной строке клиента, это необходимо сделать на стороне сервера с помощью mod_rewrite, а не функции DNS.
Вариант B. Используйте записи CNAME, чтобы указать псевдонимы для существующих записей A. То же самое относится к блогам и записям на www.blog. Выбор записи CNAME позволяет вам изменить фактический IP-адрес в одном месте (запись A). Если вы сделаете все записи как записи A, вам нужно будет обновить каждую отдельно.
В первом вопросе вы можете сделать это любым способом. Единственное реальное влияние наличия такого имени в качестве CNAME заключается в том, что при поиске этого имени это вызовет в некоторых случаях второй поиск DNS, чтобы получить имя, на которое оно указывает (так что теперь я смотрю вверх www.example.com
и получить указатель на example.com
и нужно найти его, чтобы получить IP). Разница обычно составляет порядка миллисекунд, и иногда IP-адрес указателя также включается в ответ, если сервер знает об этом, избегая второго поиска. Тем не менее, он по-прежнему создает большие пакеты DNS. Я предпочитаю просто определять их как A
записи и использование CNAME
s для хостов вне моего домена.
Что касается второго вопроса, вы можете настроить их по своему усмотрению, просто убедитесь, что веб-сервер ответит за них и предоставит соответствующее перенаправление на уровне HTTP по желанию (помните, DNS не будет перенаправлять адресный запрос браузера на другой URL-адрес) .