मैं एक Heroku एप्लिकेशन की ओर इशारा करते हुए एक शीर्ष डोमेन (कोई www) के लिए DNS कैसे स्थापित करूं?


97

मैंने पहले ही अपने Heroku ऐप में एक कस्टम डोमेन जोड़ लिया है और यह काम करता है www.domain.com

मुझे यह भी पता होना चाहिए कि wwwऐप को हल करने के बिना डोमेन कैसे सेट किया जाए ।

यहाँ मेरी वर्तमान डीएनएस सेटिंग्स हैं:

$TTL 86400
@   IN SOA ns1.first-ns.de. postmaster.robot.first-ns.de. (
    2013041500   ; serial
    14400        ; refresh
    1800         ; retry
    604800       ; expire
    86400 )      ; minimum

@                        IN NS      robotns3.second-ns.com.
@                        IN NS      robotns2.second-ns.de.
@                        IN NS      ns1.first-ns.de.

@                        IN A       88.198.38.XXX
localhost                IN A       127.0.0.1
mail                     IN A       88.198.38.XXX
ftp                      IN CNAME   www
imap                     IN CNAME   www
loopback                 IN CNAME   localhost
pop                      IN CNAME   www
relay                    IN CNAME   www
smtp                     IN CNAME   www
www                      IN CNAME   appname.herokuapp.com.
@                        IN MX 10   mail

उपयोग करने के लिए सही सेटिंग्स क्या हैं ताकि दोनों example.comऔर www.example.comमेरे हरोकू ऐप पर सही ढंग से इंगित हो?


btw ऐसा लगता है कि आपके ftp / pop / smtp सेटिंग्स सभी गलत हैं, क्योंकि यह www की ओर इशारा कर रहा है, जो कि heroku को इंगित करता है, जो ftp / pop / smtp नहीं करते हैं।
kch

जवाबों:


145

(नोट: रूट, बेस, एपेक्स डोमेन सभी एक ही चीज हैं। google-foo के लिए परस्पर विनिमय का उपयोग करना।)

परंपरागत रूप से, अपने शीर्ष डोमेन को इंगित करने के लिए आप अपने सर्वर के आईपी की ओर इशारा करते हुए एक रिकॉर्ड का उपयोग करेंगे। यह समाधान स्केल और हेकोको जैसे क्लाउड प्लेटफॉर्म के लिए व्यवहार्य नहीं है, जहां अनुरोधों के जवाब के लिए कई और अक्सर बदलते बैकेंड जिम्मेदार हैं।

उप-डोमेन (जैसे www.example.com) के लिए आप CNAME रिकॉर्ड्स की ओर इशारा कर सकते हैं your-app-name.herokuapp.com। वहाँ से, हरोकू गतिशील ए रिकॉर्ड्स का प्रबंधन करता है your-app-name.herokuapp.comताकि वे हमेशा अद्यतित रहें। दुर्भाग्य से, डीएनएस विनिर्देश ज़ोन एपेक्स (बेस डोमेन) पर CNAME रिकॉर्ड की अनुमति नहीं देता है। (उदाहरण के लिए, MX रिकॉर्ड टूट जाएगा क्योंकि CNAME को पहले उसके लक्ष्य तक ले जाया जाएगा।)

मूल डोमेन पर वापस जाएं, सरल और सामान्य समाधान उनका उपयोग नहीं करना है। एक वापसी उपाय के रूप में, कुछ DNS प्रदाता आपके लिए एक HTTP पुनर्निर्देशन सेटअप करने की पेशकश करते हैं। उस स्थिति में, इसे सेट अप करें ताकि example.comHTTP पुनर्निर्देशित हो www.example.com

कुछ DNS प्रदाता कस्टम समाधानों के साथ आगे आए हैं जो ज़ोन एपेक्स पर CNAME जैसे व्यवहार की अनुमति देते हैं। मेरी जानकारी के लिए, हमारे पास DNSimple का ALIAS रिकॉर्ड और DNS मेड ईज़ी का ANAME रिकॉर्ड है ; दोनों समान व्यवहार करते हैं।

उन का उपयोग करते हुए, आप अपने रिकॉर्ड को सेटअप कर सकते हैं (ज़ोनफ़ाइल नोटेशन का उपयोग करके, यहां तक ​​कि संभवतः आप उनके वेब उपयोगकर्ता इंटरफ़ेस पर भी ऐसा करेंगे):

@   IN ALIAS your-app-name.herokuapp.com.
www IN CNAME your-app-name.herokuapp.com.

याद रखें @यहां रूट डोमेन ( example.com) के लिए एक शॉर्टहैंड है । यह भी ध्यान रखें कि अनुगामी बिंदु महत्वपूर्ण हैं, दोनों ज़ोनफ़ाइल्स और कुछ वेब उपयोगकर्ता इंटरफ़ेस।

यह सभी देखें:

टिप्पणियों:

  • अमेज़न के रूट 53 में भी ALIAS रिकॉर्ड प्रकार है, लेकिन यह कुछ हद तक सीमित है, इसमें यह केवल AWS के भीतर ही काम करता है। फिलहाल मैं इसे हरोकू सेटअप के लिए इस्तेमाल करने की सलाह नहीं दूंगा।

  • कुछ लोग डोमेन नाम रजिस्ट्रार के साथ DNS प्रदाताओं को भ्रमित करते हैं, क्योंकि दोनों की पेशकश करने वाली कंपनियों के साथ ओवरलैप का एक सा है। ध्यान रखें कि अपने DNS को पूर्वोक्त प्रदाताओं में से किसी एक पर स्विच करने के लिए, आपको केवल अपने वर्तमान डोमेन पंजीयक के साथ अपने नेमसर्वर रिकॉर्ड को अपडेट करना होगा। आपको अपने डोमेन पंजीकरण को स्थानांतरित करने की आवश्यकता नहीं है।



3
Dnsimple का उल्लेख करने के लिए +1। क्लाउड प्रदाताओं के साथ काम करना आसान बनाने के उनके प्रयास मेरे लिए उनके स्विच करने के फैसले का एक बड़ा कारक था।
उपफूज़न

1
@ क्या आप किसी भी तरह से जानते हैं कि मैं एक DNS रिकॉर्ड प्रकार बना सकता हूं जो BIND में DNSimple के ALIAS की तरह व्यवहार करता है?
वफ़ल

1
लगता है कि तुम नहीं कर सकते। यह एक कस्टम फीचर है।
kch

2
CloudFlare भी इस सुविधा के माध्यम से प्रदान करता है जिसे वे CNAME समतल कहते हैं । वे आपके द्वारा रूट पर बनाए गए CNAME रिकॉर्ड के लिए स्वचालित रूप से ऐसा करते हैं, लेकिन यदि आप उनसे संपर्क करते हैं और इसके लिए पूछते हैं, तो वे इसे सभी CNAME रिकॉर्ड के लिए आपके पूरे क्षेत्र में सक्षम कर देंगे।
एड्रियन फ्रुविर्थ

4

हरको-होस्ट किए गए एप्लिकेशन पर अपने एपेक्स / रूट / नग्न डोमेन को इंगित करने के लिए, आपको एक DNS प्रदाता का उपयोग करने की आवश्यकता होगी जो CNAME जैसे रिकॉर्ड (अक्सर ALIAS या ANAME रिकॉर्ड के रूप में संदर्भित) का समर्थन करता है। वर्तमान में हरोकू अनुशंसाएँ :

जो भी आप चुनते हैं, आपका रिकॉर्ड निम्नलिखित की तरह दिखाई देगा:

रिकॉर्ड: ALIAS याANAME

नाम: खाली या@

लक्ष्य: example.com.herokudns.com.

बस इतना ही चाहिए।


हालाँकि, यह एसईओ के लिए अच्छा नहीं है कि उसके पास www और non-www दोनों संस्करण हैं। एक को विहित URL के रूप में इंगित करना चाहिए। आप यह कैसे तय करते हैं कि आप HTTPS का उपयोग कर रहे हैं या नहीं। और यदि आप नहीं हैं, तो आपको शायद हरकोक के रूप में होना चाहिए अब आपके लिए एसएसएल प्रमाणपत्र स्वचालित रूप से और भुगतान किए गए डायनो पर चलने वाले सभी अनुप्रयोगों के लिए मुफ्त में संभालता है।

आप HTTPS उपयोग नहीं कर रहे हैं, तो आप सिर्फ नाम की ओर इशारा करते सबसे DNS प्रदाताओं के साथ एक 301 रीडायरेक्ट का रिकॉर्ड स्थापित कर सकते हैं wwwकरने के लिए http://example.com

यदि आप HTTPS का उपयोग कर रहे हैं , तो आपको आवेदन स्तर पर पुनर्निर्देशन को संभालने की सबसे अधिक आवश्यकता होगी। यदि आप यह जानना चाहते हैं कि क्यों, इन छोटी और लंबी व्याख्याओं की जांच करें, लेकिन मूल रूप से आपके DNS प्रदाता या अन्य URL अग्रेषण सेवा के पास नहीं है, और आपके एसएसएल प्रमाणपत्र और निजी कुंजी नहीं है, तो वे HTTPS पर प्रतिक्रिया नहीं दे सकते हैं आपके डोमेन के लिए अनुरोध।

एप्लिकेशन स्तर पर रीडायरेक्ट को संभालने के लिए, आपको निम्न की आवश्यकता होगी:

  • Heroku आवेदन ( heroku domains:add example.comऔर heroku domains:add www.example.com) के लिए अपने दोनों एपेक्स और www होस्ट नामों को जोड़ें
  • अपने एसएसएल प्रमाणपत्र सेट करें
  • जैसा कि ऊपर वर्णित में ALIAS या ANAME रिकॉर्ड का उपयोग करके हरोकू में अपने शीर्ष डोमेन रिकॉर्ड को इंगित करें
  • नाम की wwwओर इशारा करते हुए एक CNAME रिकॉर्ड जोड़ेंwww.example.com.herokudns.com.
  • और फिर आपके आवेदन में, 301 गैर-www URL पर किसी भी www अनुरोध को पुनर्निर्देशित करता है ( यहाँ एक उदाहरण है कि इसे Django में कैसे किया जाए)
  • इसके अलावा अपने आवेदन में, आपको चाहिए शायद रीडायरेक्ट किसी HTTP HTTPS करने के लिए अनुरोध (उदाहरण के लिए, Django में सेट SECURE_SSL_REDIRECTकरने के लिए True)

की जाँच करें इस पोस्ट अधिक के लिए DNSimple से।


3

मैं अब वेब सर्वर के रूप में Google Apps (ईमेल के लिए) और हरोकू का उपयोग कर रहा हूं। मैं नग्न डोमेन को WWW.your_domain.com पर पुनर्निर्देशित करने के लिए Google Apps 301 स्थायी पुनर्निर्देशन सुविधा का उपयोग कर रहा हूं

आप चरण-दर-चरण निर्देश https://stackoverflow.com/a/20115583/1440255 पर प्राप्त कर सकते हैं


2

डोमेन के लिए आपको CNAME रिकॉर्ड रखने की अनुमति नहीं है, क्योंकि CNAME एक अलियासिंग सुविधा है जो सभी डेटा प्रकारों को कवर करती है (चाहे ग्राहक MX, NS या SOA रिकॉर्ड्स के लिए देखें)। CNAME भी हमेशा एक नए नाम को संदर्भित करता है, न कि एक आईपी-एड्रेस को, इसलिए वास्तव में सिंगल लाइन में दो त्रुटियां होती हैं

@                        IN CNAME   88.198.38.XXX

CNAME को A रिकॉर्ड में बदलने से यह काम करना चाहिए, बशर्ते आपके द्वारा उपयोग किया गया IP पता आपके Heroku ऐप के लिए सही हो।

DNS domain.comमें ब्राउज़र में एक साधारण नाम काम करने का एकमात्र सही तरीका है, एक रिकॉर्ड के साथ आईपी-एड्रेस के लिए डोमेन को इंगित करना।


ठीक है, लेकिन मैं अपना आईपी कैसे पता लगा सकता हूं? Via host appname.herokuapp.com/www.domain.com मुझे बस एक आईपी मिलता है: 107.20.162.205 (ऐसा कोई हरोकू ऐप नहीं)
mrks

1
वह IP उपयोग करने वाला है। आप केवल ब्राउज़र में आईपी-पते के साथ परीक्षण नहीं कर सकते, क्योंकि हरोकू को उस ऐप का नाम जानना होगा जिसे आप उपयोग करने की कोशिश कर रहे हैं। बस DNS में ए रिकॉर्ड स्थापित करें और की तुलना में परीक्षण करें, और हरोकू उस नाम को देखेगा जिसका आप उपयोग कर रहे हैं और सब कुछ ठीक होना चाहिए!
क्रिस्चू

ठीक है, लेकिन मुझे "होस्ट appname.herokuapp.com" के बाद हर बार एक और आईपी मिलता है।
16'13

2
host app-name.herokuapp.comपरिणाम गतिशील हैं। यदि आप उन्हें हार्डकोड करते हैं, तो आपका ऐप अंततः टूट जाएगा। किसी अन्य टिप्पणी में अनुशंसित ANAME / CNAME समाधान देखें।
kch

1
आपको एक गैर-बदलते आईपी पते के साथ कुछ वेबसर्वर की आवश्यकता है जो कि उस डोमेन पते से domain.com -> www.domain.com, और domain.com से HTTP रीडायरेक्ट कर सके। तो फिर तुम असली heroku एप्लिकेशन के लिए www.domain.com बिंदु के लिए एक CNAME हो सकता है।
क्रिश्चु
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.