2015-07-30 1 views
5

ЦелиHeroku пользовательские домены на Cloudflare: слишком много переадресаций

  • Run https://rapid.essbap.org через Cloudflare.
  • Это должно отображаться на https://ebcc-rrn.herokuapp.com (приложение Rails)
  • Однако я получаю страницы «слишком много переадресаций», например.

enter image description here

  • Сделали это успешно, прежде чем на других приложений Heroku, используя указанные ниже действия
  • Что я упускаю?

Что я сделал

  • Приобретенные essbap.org через GoDaddy.
  • Импортированный DNS в Cloudflare.
  • Внесены серверы имен Cloudflare в Godaddy.
  • Удалены записи зоны от Godaddy.

Cloudflare:

  • Inserted CNAME запись rapid, чтобы указать на ebcc-rrn.herokuapp.com
  • На Heroku: добавлен пользовательский домен rapid.essbap.org в ebcc-rrn.herokuapp.com

Heroku:

heroku domains:add rapid.essbap.org 

=== ebcc-rrn Heroku Domain 
ebcc-rrn.herokuapp.com 

=== ebcc-rrn Custom Domains 
Domain Name  DNS Target 
---------------- ---------------------- 
rapid.essbap.org ebcc-rrn.herokuapp.com 

$ host rapid.essbap.org 
rapid.essbap.org has address 104.27.162.137 
rapid.essbap.org has address 104.27.163.137 

Cloudflare настройки

enter image description here

РАЗ ДОБАВЛЕНО:

Запуск локон

Когда я бегу curl против другого пользовательского домена приложения Heroku, что я знаю, работает, он выглядит следующим образом:

$ curl -I some.custom_app.com 
HTTP/1.1 301 Moved Permanently 
Location: https://some.custom_app.com/ 

# since I'm using force_ssl on Rails, we expect to be directed to https:// 

$ curl -I https://some.custom_app.com/ 
HTTP/1.1 200 OK 

Аналогичные поведения для ebcc-rrn.herokuapp.com (Herokuapp мы хотим, чтобы rapid.essbap.org был псевдонимом). 301, то 200.

Но когда я бег curl против rapid.essbap.org, я получаю:

$ curl -I rapid.essbap.org 
HTTP/1.1 301 Moved Permanently 
Location: https://rapid.essbap.org/ 

# since I'm using force_ssl on Rails, we expect to be directed to https:// 

$ curl -I https://rapid.essbap.org 
HTTP/1.1 301 Moved Permanently 
Location: https://rapid.essbap.org/ 

Получает 301 вместо 200 во втором случае. Не знаю, почему создается 301. Не происходит в dev или с ebcc-rrn.herokuapp.com.

Что мне не хватает?

+0

также см. Это решение, которое я разместил здесь, мог бы помочь: http://stackoverflow.com/questions/43141495/deploying-phoenix-application-to-heroku-with-ssl-and-cloudflare-too-many-redire/ 44093532 # 44093532 – Paul

ответ

3

К сожалению, нет убедительных решение (но большое спасибо Heroku для технической помощи).

удалось решить проблему путем отбрасывания и попробовать еще раз:

  • Передача DNS обратно в Godaddy
  • Вытирая домен из Cloudflare
  • Обеспечение функциональности с Godaddy
  • Создать домен на Cloudflare
  • Перейдите на Cloudflare снова

Теперь все работает как и планировалось.

+0

У меня такая же проблема, с моим md2pdf.herokuapp.com. Домен от nic.io и DNS был предоставлен dyn.com, прежде чем пытаться переключиться на cloudflare. – zbeekman

0

Если я скручиваться, что URL над https://rapid.essbap.org/, это выглядит, как вы его перенаправлении обратно https://rapid.essbap.org/

локон -v https://rapid.essbap.org * перестроен URL для: https://rapid.essbap.org/ * Hostname не был найден в кэше DNS * Попытка 2400 : cb00: 2048: 1 :: 681b: a389 ... * Подключен к rapid.essbap.org (2400: cb00: 2048: 1 :: 681b: a389) порт 443 (# 0) * Соединение TLS 1.2 с использованием TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 * Сертификат сервера: sni95196.cloudflaressl.com * Сертификат сервера: Проверка домена COMODO ECC Безопасный сервер CA 2 * сертификат сервера: COMODO ECC сертификации сертификат * Сервер: AddTrust Внешний CA Root

GET/HTTP/1.1 User-Agent: завиток/7.37.1 Ведущий: rapid.essbap. орг Accept: /

< HTTP/1.1 301 Moved Постоянно * Сервер CloudFlare-Nginx не занесен в черный список < Сервер: CloudFlare-Nginx < Дата: Чт , 30 июля 2015 23:37:57 GMT < Content-Type: Текст/HTML < Transfer-Encoding: фрагментированное < Connection: Keep-Alive < Set-Cookie: __cfduid = ddc8d6151d53a0e3d3eab0789f0b811851438299465; expires = Пт, 29-Jul-16 23:37:45 GMT; Путь = /; домен = .essbap.org; HttpOnly < Расположение: https://rapid.essbap.org/ < Via: 1,1 vegur < CF-RAY: 20e4e4ab2489281c-SJC

http://rapid.essbap.org/ * Hostname не был найден в кэше DNS * Попытка 2400: cb00: 2048: 1 :: 681b : a389 ... * Подключение к rapid.essbap.org (:: 1) порт 80 (# 0)

GET/HTTP/1.1 User-Agent: завиток/7.37.1 Ведущий: быстрый .e ssbap.org Accept: /

< HTTP/1.1 301 Moved Постоянно < Дата: Чт, 30 июля 2015 23:40:57 GMT < Content-Type: Текст/HTML < Transfer-Encoding: chunked < Подключение: keep-alive < Set-Cookie: __cfduid = d5b6d3a1c46df56fcd623454bba7c9d121438299657; expires = Пт, 29-Jul-16 23:40:57 GMT; Путь = /; домен = .essbap.org; HttpOnly < Местонахождение: https://rapid.essbap.org/ < Через: 1.1 vegur * Сервер CloudFlare-Nginx не занесен в черный список < Сервер: CloudFlare-Nginx < CF-RAY: 20e4e95a0abf281c-SJC

+0

Спасибо, перенаправление обратно соответствует ожидаемому поведению с пользовательским доменным приложением Heroku. Я сравнивал это с рабочими приложениями пользовательского домена Heroku (в дополнение к моему вопросу). Но '' https: // rapid.essbap.org'' должен возвращать 200, а не 301. Попытка выяснить, почему это так. –

+0

Если у вас есть доступ к запросам поддержки Cloudflare, это # ​​508914 –

2

Недавно я столкнулся с той же проблемой на сайте, также используя Heroku и Cloudflare и SSL.

В нашем случае мы решили установить параметр SSL в Cloudflare под Crypto> SSL до Flexible. У нас было это на Full, что заставляло сайт пытаться использовать SSL-сертификат CloudFlare. Он не работал с параметром SSL, установленным на Off.

+1

Для меня было наоборот: у меня была настройка SSL на моем сайте Heroku, и я получал слишком много переадресаций с Cloudlfare SSL как 'Off' или' Flexible'. Установка его в 'Full (strict)' работала для меня, поскольку этот SSL уже присутствовал на сервере. –

1

Im мой установка Crypto случай -> SSLFlexible к Full сделал трюк.