Как сделать так, чтобы псевдонимы "голого домена" были такими, как хосты 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 Имя хоста.

Упомянутые вами фрагменты конфигурации будут работать таким образом.

Другие вопросы по тегам