2013-05-18 24 views
11

Mam domenę example.com, którą chcę użyć dla mojej aplikacji railsowej, która znajduje się na przykład.herokuapp.com i jestem bardzo zdezorientowana, jak to zrobić.Niestandardowa domena root na Heroku

Heroku says

„strefa wierzchołkowe domeny (aka "nagie", "gołe" lub "root") domen, np example.com przy użyciu konwencjonalnych A-DNS rekordy nie są obsługiwane na Heroku . " Następnie wyjaśniają obejścia (przy użyciu ALIAS lub ANILY ANAME).

Spędziłem dobrą godzinę czytając na ten temat (tutaj na SO i gdzie indziej), ale nadal nie rozumiem tego.

Czy są jakieś alternatywne sposoby lub wyjaśnienia, jak to osiągnąć dla "manekina"?

Odpowiedz

25

Pójdę na to, ponieważ jest to częste pytanie.

OK, więc zakładając, że masz domenę example.com i chcesz użyć witryny www.example.com do hostowania swojej witryny. W tradycyjnym hostingu prawdopodobnie masz serwer wirtualny, któremu przypisano adres IP, w tym przypadku użyłbyś rekordu hosta, znanego również jako rekord A w panelach kontrolnych DNS, aby zmapować adres www.example.com na adres IP . W tym przypadku, ponieważ ustawiłeś adres www.example.com na stały adres IP, jeśli ten adres IP kiedykolwiek się zmieni, będziesz musiał sam zaktualizować DNS.

Również w przypadku tradycyjnego hostingu można ustawić domenę example.com na tym samym adresie IP, aby witryna www.example.com i witryna example.com działały w przypadku domen nagich.

OK, więc co to jest rekord CNAME. Rekord CNAME zamiast mapowania na adres IP odwzorowuje rekord na inną pozycję DNS. Tak więc przykładowy kod CNAME na przykład.herokuapp.com oznacza, że ​​Heroku może i może się poruszać tam, gdzie wskazuje przykład.herokuapp.com, ale nie musisz niczego aktualizować, ponieważ korzystasz z rekordu CNAME i Heroku. zarządzanie tam, gdzie wskazuje przykład.herokuapp.com (który może i może być innym adresem CNAME lub adresem IP). Problem z rekordami CNAME polega na tym, że NIE MOGĄ wskazywać na adres IP, co jest dobre w przypadku www.example.com, ale problem z witryną example.com. Heroku wcześniej opublikował adresy IP, które mają być używane w nagich domenach, ale problemy pojawiły się, kiedy padły ofiarą ataków DDoS i nie mogły zastąpić tych adresów IP nowymi, ponieważ były to opublikowane adresy IP. Dla nowego regionu UE Heroku NIE publikuje adresów IP do użytku z nagimi domenami.

Zrobiłem kilka dostawców DNS (DNSsimple I know is one) dodałem własne rekordy ALIAS do ich serwerów DNS, aby umożliwić używanie rekordów CNAME z nagimi domenami, więc zarówno www.example.com, jak i example.com będą działać jako teraz obsługiwane przez Heroku. Jeśli dostawca DNS nie obsługuje rekordów ALIAS, warto przenieść domenę do dostawcy DNS, który obsługuje tę usługę. DNSsimple obsługuje również rekordy przekierowania, dzięki czemu możesz przekierować www.example.com do example.com na poziomie dostawcy DNS, a nie na poziomie aplikacji.

+0

Mediatemple nie nazywa tego niczym specjalnym, wystarczy wybrać CNAME dla www. i rekordy root. –

+1

Jeśli korzystasz z rekordu CNAME dla domeny głównej w MediaTemple, rekordy MX w domenie głównej nie będą już działać - innymi słowy, nie otrzymasz żadnych wiadomości e-mail. –

-3

Jeśli spojrzysz na specyfikację rekordów DNS, nie znajdziesz takiego rekordu, jak ANAME.

Najlepszym sposobem rozwiązania tego problemu jest: Wprowadź wpis CNAME dla subdomeny www do swojej aplikacji heroku, a rekord CNAME dla domeny głównej do poddomeny www.

  • www.domena.com. 3600 IN CNAME app.herokuapp.com.
  • @ 3600 IN CNAME www.domena.com.

P.S. To działa, i nie sprawi, że trać pieniędzy na mistycznych rekordów DNS

3

uznał ten: http://blog.cloudflare.com/zone-apex-naked-domain-root-domain-cname-supp

CloudFlare zapewnia całą masę innych świadczeń, jak również. Używałem ich do wszystkich moich aplikacji Heroku i cieszę się, że jestem szczery.

Zapewniają one dużą wartość za darmo z mojego doświadczenia z nimi do tej pory.

+0

Warto dodać, że CloudFlare obsługuje teraz spłaszczanie CNAME, aby przedstawić rekord CNAME jako rekord A. https://support.cloudflare.com/hc/en-us/articles/200169056-CNAME-Flattening-RFC-compliant-support-for-CNAME-at-the-root – Simone

Powiązane problemy