Добавление www. к домену

Я настроил своё сообщество Discourse на Digital Ocean, но доменное имя «голое», то есть просто https://example.com. Я хотел бы добавить www., но не совсем уверен, как правильно настроить DNS!

В данный момент у меня есть запись типа ‘A’, указывающая на IP-адрес, и запись типа ‘CNAME’ с www., ведущая на этот же адрес. Достаточно ли просто заменить www. на запись типа ‘A’ и удалить CNAME? Или, возможно, обе записи должны быть типа ‘A’? А может, в самом Discourse есть простая настройка, определяющая, как будет отображаться домен?

Забавно, но у меня есть обычный сайт на Wix с такой же конфигурацией: «голая» запись A и CNAME для www., и в браузере он отображается как www. — поэтому я не понимаю, что именно заставляет его так выглядеть.

Я обещаю, что пытался ещё больше разобраться в DNS, но совершенно запутался!

Любая помощь по добавлению www. будет очень кстати! :slight_smile:

Сначала создайте DNS-запись, например:

TYPE:             CNAME
HOST:             WWW
POINTS TO:        @

Затем следуйте этому руководству:

Большое спасибо за это! Мне удалось заставить всё работать на www., повторно запустив скрипт discourse-setup, как указано в вашей статье, но теперь домен без префикса www. перестал работать! Есть ли способ заставить работать и домен без префикса, или хотя бы автоматически добавлять www.?

Итак, у меня сейчас есть:
A-запись, связывающая домен без префикса с IP-адресом
CNAME-запись, связывающая www с доменом без префикса

Большое спасибо!

Простой способ — это forcewww.com. Более сложный — настройка Let’s Encrypt для нескольких доменов.

Спасибо за это! Я ознакомился с обоими вариантами, но просто хотел уточнить: почему бы не использовать простую 301-перенаправку для перенаправления с домена без www на домен с www? Стоит ли попробовать это сделать, или я нарушаю какие-то правила DNS?

Оба этих метода предоставляют сертификат Let’s Encrypt для второго (под)домена. Добавление дополнительной информации в ваш app.yml охватывает оба адреса домена в одном сертификате, а forcewww.com обладает специальной магией, которая делает это на лету, поэтому вам не нужно об этом беспокоиться:

ОК, звучит так, будто мне просто нужно использовать ForceWWW. Могу ли я подтвердить (извините, я совсем не в теме) — они просят меня настроить www как A-запись на IP-адрес моего сервера, а голое доменное имя как A-запись на IP-адрес, который они предоставляют? То есть никаких CNAME?

Что у меня есть сейчас:
A-запись, указывающая голое доменное имя на IP-адрес сервера
CNAME-запись, указывающая www на голое доменное имя

Предлагаемое изменение с использованием ForceWWW
A-запись, указывающая голое доменное имя на IP-адрес ForceWWW
A-запись, указывающая www на IP-адрес моего сервера

Я думаю, что всё работает именно так. :+1:

Спасибо! Я всё настроил — пока не работает (ввод в «голое» доменное имя), но, возможно, потребуется несколько часов для активации, поэтому подожду и посмотрю!

Ура, кажется, всё работает! Большое спасибо за вашу помощь!

К сожалению, это каким-то образом сломало систему отправки писем — сайт больше не отправляет письма через Mailgun. Возможно, это связано с принудительным добавлением www, так как хостинг теперь осуществляется через их сервер? Или мне нужно обновить настройки Mailgun, чтобы указать www? Господи, дай мне сил.

Вам нужно изменить DISCOURSE_NOTIFICATION_EMAIL на noreply@baredomain.com. Я бы отредактировал файл yml, уничтожил контейнер и запустил его заново.

Спасибо — я сбросил пароль SMTP, затем снова запустил скрипт настройки Discourse, и, похоже, это решило проблему! Не знаю, как и почему, но теперь всё работает, так что я больше ничего не трогать!