Привет! Я хотел бы убедиться, что поддомен www перенаправляет пользователей на установленный Discourse. Мне кажется, это необходимо, чтобы не терять посетителей. Большинство людей не пропускают «www» при посещении веб-сайтов.
В настройках DNS у вашего регистратора необходимо добавить A-запись для www, указывающую на IP-адрес сервера. Тот же самый IP-адрес, на который сейчас указывает A-запись для domain.com.
Это вызовет проблемы, если пользователь зайдет через версию с www? В Discourse установлено, что www не включается.
Нет, потому что пользователь будет перенаправлен. Один и тот же сайт не будет обслуживаться под несколькими доменами.
Вам нужны эти руководства. Я использовал их для той же самой цели:
Вы имеете в виду, что добавления A-записи для «www» недостаточно? Я прочитал эти статьи.
Мой сайт получал неприятное сообщение в браузере без регистрации сертификата для обоих «поддоменов».
Я только что настроил Discourse на Droplet от Digital Ocean. Для шага 2 — редактирования файла discourse.conf — требуется ли установка nginx? Я не уверен, но, кажется, на моём Droplet nginx не установлен, и я не знаю, как его установить.
Я думаю, что в этом руководстве объясняется этот момент:
https://meta.discourse.org/t/running-other-websites-on-the-same-machine-as-discourse/17247/294
Да, добавление A-записи для www, указывающей на тот же IP-адрес, будет достаточно для перенаправления трафика.
Вам не нужно выполнять ничего из того, что описано в других руководствах; для простого перенаправления достаточно A-записи, указывающей на IP-адрес.
Не усложняйте установку без крайней необходимости.
Хватит ли этого, чтобы избежать ошибки браузера NET::ERR_CERT_COMMON_NAME_INVALID? Если я установлю Discourse на поддомен www, то при доступе к сайту по адресу https://example.com у меня возникает эта ошибка. Всё работает только при использовании https://www.example.com.
Вот почему стоит использовать перенаправление: Discourse не может обслуживаться с нескольких URL-адресов.
Выберите один, а остальные перенаправьте.
У меня похожая проблема, и использование записи перенаправления URL на уровне DNS не решает её.
Я установил Discourse с именем хоста ‘www.example.com’ и следующими DNS-записями:
A-запись хост:WWW значение:my_server_ip
CNAME хост:@ значение: www.example.com
Запись перенаправления URL хост:@ значение:https://www.example.com
Если затем я использую SSL Server Test (Powered by Qualys SSL Labs) для проверки URL https://example.com без WWW, то получаю ошибку несоответствия имени сертификата, а в браузере — ошибку NET::ERR_CERT_COMMON_NAME_INVALID.
Ещё раз приношу извинения, если я упускаю что-то очевидное — сетевые технологии не моя сильная сторона!
Вот почему я опубликовал эти ссылки. Мне бы хотелось, чтобы всё было так же просто, как изменение DNS. Но и мне это не показалось таким простым. Чтобы работало через HTTPS, я должен был убедиться, что сертификат регистрируется для обоих адресов. Для этого воспользуйтесь одним из руководств, которые я опубликовал выше. Другое руководство позволяет настроить перенаправление.
Пользователи крайне редко указывают протокол при вводе URL. Если вы действительно обеспокоены этим, просто используйте Cloudflare для DNS и создайте простое правило для страницы.
Да, я «перенёс» свой домен (на самом деле я просто отказался от префикса www), поэтому мне пришлось обслуживать существующие ссылки на сайтах, которыми я не управлял, которые вели к моему старому домену с https. Возможно, это объясняет, почему в моём случае у меня не было выбора, кроме как сделать всё полностью.
Так что, если я правильно понимаю, вы говорите, что если вас устраивает, когда кто-то вводит www.example.com и его перенаправляет на https://example.com, то достаточно просто изменить DNS?
Однако, если по какой-то причине вы хотите, чтобы https://www.example.com работал (в моём случае это было необходимо, так как такие ссылки уже были «в интернете»), вам нужно следовать предоставленным руководствам.
Или просто используйте правило страницы, как указано выше. Это обеспечит работу домена с помощью wildcard-сертификата и бесшовно перенаправит трафик.
Всё это без дополнительного усложнения сервера Discourse.
Что такое правило страницы?
Я планирую следовать руководству How To Install Discourse Behind Nginx on Ubuntu 14.04 | DigitalOcean, чтобы установить Nginx на своём Digital Ocean droplet, а затем применить правила, указанные в «шаге 2», для перенаправления на правильный домен. Думаю, это должно сработать! Попробую это завтра и посмотрю, получится ли перенаправлять все комбинации https://www., http://www, http://domain.com, https://domain.com на мой хост Discourse, для которого сертификат Lets Encrypt выдан на https://www.domain.com.
Посмотрим!
@Erik_Manger, решения на основе DNS не сработали для меня с SSL. Я использовал первую ссылку, предоставленную @merefield, и она работает отлично.
Вам нужно было установить Nginx перед Discourse, чтобы это заработало? На моём Droplet от Digital Ocean путь “/etc/nginx/”, используемый в дополнительных хуках, не существует.