Как сделать так, чтобы псевдонимы "голого домена" были такими, как хосты DNS, которые его поддерживают?
Моя цель - использовать GitHub Pages, а также использовать их CDN без необходимости использовать сторонний хост DNS, который поддерживает типы записей DNS ALIAS (или ANAME - ни один из них не является принятым стандартом). Я хочу знать, как они это делают, кто-нибудь может объяснить, пожалуйста?
У нас много вопросов о псевдонимах DNS с записями CNAME, но в этой конкретной ситуации я не могу CNAME обнажить домен username.github.io
,
Если я сделаю это с Apache или Nginx, чтобы www.example.com работал как страница GitHub, будет ли это работать и я нарушу что-нибудь, например, электронную почту?
апаш
<VirtualHost *:80>
ServerName example.com
Redirect 301 / http://username.github.io/
</VirtualHost>
Nginx
server {
server_name example.com;
return 301 http://username.github.io/;
}
Выше предполагается, что CNAME для www => username.github.io и запись A для голого домена => одного из моих серверов с вышеуказанной конфигурацией.
1 ответ
без использования стороннего хоста DNS, который поддерживает типы записей DNS ALIAS (или ANAME - ни один из них не является принятым стандартом)
Это предложение не имеет смысла. В обоих упомянутых случаях пользовательские типы DNS ALIAS и ANAME внутренне разрешаются в пул записей A. Таким образом, с точки зрения конечного пользователя, вы не нарушаете никаких стандартов. Любой клиент, пытающийся подключиться к имени хоста, настроенного вами с помощью ALIAS (я могу говорить за DNSimple, если я работаю для них), вернет тот же список записи A, который вернет целевое имя хоста.
но в этой конкретной ситуации я не могу CNAME обнаженного домена для username.github.io.
Теоретически вы можете, практически вы не хотите. Согласно RFC, CNAME не может сосуществовать с каким-либо дополнительным типом записи. Это означает, что если вы CNAME корневого домена, вы будете скрывать любые другие записи, связанные с корневым доменом, в основном нарушая способность вашего корневого домена для разрешения.
Если я сделаю это с Apache или Nginx, чтобы www.example.com работал как страница GitHub, будет ли это работать и я нарушу что-нибудь, например, электронную почту?
Вы можете настроить www.example.com
как CNAME, если вам не нужны никакие другие записи DNS, связанные с этим именем хоста. Это нормально нормально
Из конфигурации веб-сервера вам ничего не нужно делать. Если вы настраиваете www.example.com
как CNAME username.github.io
любой запрос www.example.com
будет разрешать IP-адреса, связанные с username.github.io
и веб-серверы GitHub будут обрабатывать запрос.
Тем не менее, в этом случае вы не решили проблему того, что вы хотите сделать с корневым доменом. На данный момент единственное, что вы можете сделать, это перенаправить HTTP корневой домен к www.example.com
Имя хоста.
Упомянутые вами фрагменты конфигурации будут работать таким образом.