Перенаправление домена с мгновенным сообщением "недоступен"


Чтобы перенаправить мой голый/голый домен на мой домен www, который размещен в Heroku, я использую функцию переадресации GoDaddy, как упоминалось в других сообщениях (Переадресовать на www.mydomain.com, 301 (Пермь) перенаправление, только переадресация):

Также установлен экран сведений о домене: Cname (псевдоним), хост: www указывает на myapp.heroku.com .

Хотя это в основном работает, когда я посещаю"mydomain.com "в OSX Chrome я на мгновение вижу серый экран "Эта веб-страница недоступна", прежде чем произойдет перенаправление. Иногда задержка может составлять даже несколько секунд - достаточно долго, чтобы пользователь мог перейти в другое место, прежде чем это произойдет. (В Сафари это работает нормально).

Мой сайт: www.morphmarket.com . Попробуйте это против morphmarket.com.

Следует ли этого ожидать при том подходе, который я использование, и можно ли этого избежать?

Обновление

50.63.202.10 - это GoDaddy. Итак, @ (голый) указывает на GoDaddy, который разрешает его в www, затем www разрешается с помощью записи CNAME на некоторый IP-адрес Heroku. Поэтому @ совершает дополнительную поездку туда и обратно. Кроме того, существует один IP-адрес GoDaddy, в то время как Heroku имеет множество IP-адресов по всему миру, что, по-видимому, обеспечивает более быстрый отклик в этой области.

Похоже, что если бы у голого домена могла быть запись типа CName мы были бы настроены, но, вероятно, есть веские причины, по которым это невозможно, например, что здесь также происходят другие вещи, такие как обработка электронной почты.

Author: Community, 2015-08-13

3 answers

Какой замечательный вопрос...

Учитывая вашу установку, я не то, что вы можете здесь сделать.

Похоже, что задержка на стороне перенаправления 301 Godaddy, поэтому у меня возникнет соблазн спросить их, почему такая задержка.

Ваша запись A указывает на 50.63.202.10, это учетная запись хостинга? Если это так, то у меня возникнет соблазн удалить перенаправление godaddy и разрешить не-www перейти на хостинг godaddy с IP 50.63.202.10, а затем перенаправить 301 оттуда.

Это может ускорить, а может и не ускорить вверх по перенаправлению, но стоит попробовать. Что ж, для меня это так.

@Уильям Харви

 1
Author: William Harvey, 2015-08-18 09:56:29

Вы, кажется, делаете все правильно с точки зрения веб-мастера, но я взглянул на ваши заголовки с помощью CURL.

Когда я попытался просто http://morphmarket.com , я получил следующее:

HTTP/1.1 301 Moved Permanently
Cache-Control: max-age=900
Content-Length: 0
Content-Type: text/html
Location: http://www.morphmarket.com
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 19 Aug 2015 01:17:29 GMT
Age: 1
Connection: keep-alive

И это то, что я получил, когда попытался http://www.morphmarket.com

HTTP/1.1 200 OK
Connection: keep-alive
Date: Wed, 19 Aug 2015 01:17:49 GMT
Server: WSGIServer/0.1 Python/2.7.10
Content-Type: text/html; charset=utf-8
X-Frame-Options: SAMEORIGIN
Vary: Cookie
Set-Cookie:  csrftoken=ro6q7diFWPnnIuvBSxXWWJUnSfqEbzDb; expires=Wed, 17-Aug-2016 01:17:49 GMT; Max-Age=31449600; Path=/
Via: 1.1 vegur

Это говорит мне о том, что вы используете два разных сервера. Microsoft IIS для обработки домена без WWW и другой сервер для обработки домена с www. Также существует слишком много HTTP заголовки для страницы перенаправления.

Заголовки HTTP для стандартной страницы перенаправления apache похожи на следующие:

HTTP/1.1 301 Moved Permanently
Date: Wed, 19 Aug 2015 01:21:58 GMT
Server: Apache
Location: http://www.example.com/
Content-Type: text/html; charset=iso-8859-1

Тогда я предлагаю изменить версию IIS, которую вы используете, или изменить все серверное программное обеспечение, которое обслуживает домен без www. На самом деле, постарайтесь сделать серверное программное обеспечение согласованным при обработке как www-, так и не-www-версий вашего домена.

 1
Author: Mike -- No longer here, 2015-08-19 01:26:32

Heroku дает указания по настройке DNS для root, и они предоставляют список поставщиков DNS, которые могут предоставить ПСЕВДОНИМ/ИМЯ и другие необходимые возможности.

Они говорят, что если ваш DNS-провайдер не предоставит этого, то вам придется сделать перенаправление (так же, как это сделал я):

Если ваш поставщик DNS не поддерживает псевдонимы или имена, вам потребуется использовать перенаправление поддоменов (также называемое перенаправлением) для настройки DNS для корневого домена (вы не можете использовать запись, которая требует IP-адрес). Перенаправление поддомена приводит к постоянному перенаправлению 301 на указанный поддомен для всех запросов корневого домена. Однако имейте в виду, что при использовании этого метода безопасный запрос к корневому домену, например, https://example.com , приведет к отображению пользователю ошибки или предупреждения или может быть полностью отказано в подключении.

Из этого я делаю вывод об ответе на мой вопрос - Chrome, скорее всего, сначала попытается решить "morphmarket.com "как https, затем показывает ошибку, затем пытается http, и это работает.

Что касается того, почему это так медленно, я считаю, что факторы следующие:

  • @/bare требует дополнительной поездки туда и обратно для перенаправления GoDaddy на поддомен.
  • Некоторые утверждают, что GoDaddy медленный.
  • Если Chrome действительно сначала пытается использовать https, это может означать 2 дополнительных рейса туда и обратно.
  • Все IP-адреса указывают на один IP-адрес GoDaddy, в то время как CNAME перенаправляет на множество серверов Heroku по всему мир.

Похоже, что исправление заключается в том, что я передам свой домен поставщику DNS с возможностями ПСЕВДОНИМА/ИМЕНИ.

 1
Author: John Lehmann, 2015-08-19 01:37:00