การเปลี่ยนเรคคอร์ด A และ CNAME


11

ขณะนี้ฉันกำลังใช้การLAMPกำหนดค่าสำหรับทั้งหน้า Landing Page ของฉันสำหรับเว็บแอปและสำหรับ API ตอนนี้ฉันต้องการแยกสิ่งเหล่านี้ออกเป็นหลาย ๆ เซิร์ฟเวอร์เสมือน (VS) ฉันไม่แน่ใจเกี่ยวกับการตั้งค่าเครือข่ายและก่อนที่จะทำให้การกำหนดค่า DNS ทั้งหมดของฉันสับสนฉันต้องการที่จะเข้าใจว่าฉันกำลังจะพังการกำหนดค่าของฉันหรือไม่

หน้า Landing Page เป็นเจ้าภาพที่second level domain(เช่นmyurl.com) app เว็บโฮสติ้งที่โดเมนระดับที่ต่ำกว่าapp.myurl.comและ API api.myurl.comที่ ฉันยังมีโดเมนตัวอย่าง: preview.myurl.comใช้สำหรับการทดสอบ

เมื่อทุกอย่างถูกโฮสต์ใน VS เดียวกันผมในขณะนี้ยังมีสี่โฟลเดอร์ที่แตกต่างกัน ( landing, api, webapp, preview) ที่ทำหน้าที่เป็น "เจ้าภาพเสมือน" สำหรับแต่ละโดเมนย่อย

การกำหนดค่า DNS ของฉันมีลักษณะดังนี้:

myurl.com.  A   300 123.123.123.123
www.myurl.com.  CNAME   300 myurl.com.
api.myurl.com.  CNAME   300 myurl.com.
app.myurl.com.  CNAME   300 myurl.com.
preview.myurl.com.  CNAME   300 myurl.com.

ในการเริ่มต้นฉันต้องการเปลี่ยนข้อมูลของแต่ละรายการ CNAME เป็น IP จริงของ VS ปัจจุบัน เพื่อให้มีลักษณะเช่นนี้:

myurl.com.  A   300 123.123.123.123
www.myurl.com.  CNAME   300 myurl.com.
api.myurl.com.  CNAME   300 123.123.123.123
app.myurl.com.  CNAME   300 123.123.123.123
preview.myurl.com.  CNAME   300 123.123.123.123

ดังนั้นแนวคิดก็คือให้แต่ละโดเมนย่อยชี้ไปที่ VS ที่เหมาะสม เริ่มแรกโดเมนระดับต่ำกว่าทั้งหมด (ยกเว้นwww.) จะยังคงชี้ไปที่ VS ปัจจุบันในขณะที่โดเมนระดับที่สองสำหรับหน้า Landing Page ( Aบันทึกmyurl.com.) จะต้องชี้ไปที่ใหม่IPสำหรับ VS ใหม่

คำถาม:

  1. การเปลี่ยนแปลงเหล่านี้จะมีผลต่อวิธีการที่ปัจจุบัน Apache Server มีการกระจายการจราจรไปยังแต่ละโฟลเดอร์ย่อย (เช่นlanding, api, webapp, preview)? ถ้าเป็นเช่นนั้นแม้ว่าIPที่อยู่ทั้งหมดจะยังคงเหมือนเดิมหรือไม่?
  2. เพื่อทดสอบสิ่งต่าง ๆ ฉันสามารถเริ่มต้นด้วยการเปลี่ยนเฉพาะdataมูลค่าpreview.myurl.com.โดยไม่ต้องเสี่ยงที่จะประนีประนอมกับส่วนที่เหลือหรือไม่
  3. เมื่อทั้งหมดโดเมนระดับที่ต่ำกว่า (เช่น api.myurl.com) ชี้ไปที่ IP ของ VM ที่ฉันสามารถชี้Aค่าของmyurl.com.กับ IP ที่แตกต่างโดยไม่สูญเสียโดเมนระดับที่ต่ำกว่าที่อื่น ๆ ( api, app, preview)?

2
หากไม่ได้อ่านคำถามของคุณมากขึ้นคุณไม่ควรใช้ระเบียน CNAME กับที่อยู่ ip แต่ใช้Aบันทึกแทน:app.myurl.com. A 300 10.123.123.123
HBruijn

ฉันจะไปอีกขั้นหนึ่งแล้วบอกว่าระเบียน CNAME ต้องชี้ไปที่ชื่อโดเมนและไม่สามารถเป็นที่อยู่ IP ได้ ฉันจะแปลกใจถ้าระบบการจัดการ DNS ช่วยให้คุณใส่ที่อยู่ IP เป็นเป้าหมายของระเบียน CNAME
Dre

2
@Dre คุณสามารถใส่ตัวเลขลงใน CNAME RR ที่ดูเหมือนที่อยู่ IP แต่จะถูกตีความว่าเป็นชื่อโดเมนที่ไม่มีเงื่อนไข
Michael Hampton

คำตอบ:


12

ดังที่ได้กล่าวไว้ในความคิดเห็นคุณจะต้องใช้ระเบียน A แทนระเบียน CNAME ระเบียน CNAME จะไม่สามารถชี้ไปยังที่อยู่ IP ได้

กุญแจสำคัญในการทำให้แต่ละไซต์ทำงานได้คือการระบุ ServerName อย่างถูกต้องสำหรับแต่ละเซิร์ฟเวอร์เสมือนใน Apache config ของคุณ


ขอบคุณนั่นเป็นประโยชน์มาก สิ่งเดียวที่ฉันไม่แน่ใจคือบิตเกี่ยวกับ ServerName สิ่งที่ดูเหมือนว่าจะทำงานอย่างถูกต้อง? ข้อสงสัยของฉันคือ ServerName ได้รับผลกระทบจากวิธีที่ DNS แก้ไขเป็น VS ใดหรือไม่
อย่า

1
ถ้าฉันเข้าใจคุณถูกต้องใช่ ชื่อเซิร์ฟเวอร์เป็นวิธีที่ Apache รู้ว่า VS ตัวใดที่จะส่งปริมาณข้อมูลเข้ามา .. สมมติว่าคุณมีการตั้งค่าระเบียน A ทั้งหมดใน DNS ของคุณชี้ไปที่ที่อยู่ 123.123.123.123 เมื่อคุณเรียกดูไปที่ myurl.com คำขอของคุณจะถูกส่งไปที่ 123.123.123.123 Apache ได้รับการร้องขอและตระหนักว่ามีบางเว็บไซต์บน IP นั้นดังนั้น Apache จะตรวจดูคำขอที่คุณส่งและใกล้ชิดกับเบราว์เซอร์ของคุณว่ากำลังมองหา myurl.com Apache จะค้นหา URL นั้นเพื่อจับคู่หนึ่งในค่าชื่อเซิร์ฟเวอร์สำหรับแต่ละ VS
Dre

11

ใช้Aบันทึกเพื่อชี้ไปที่โดเมนย่อย

myurl.com.  A   300 123.123.123.123
api.myurl.com.  A   300 123.123.123.123
app.myurl.com.  A   300 123.123.123.123
preview.myurl.com.  A   300 123.123.123.123
www.myurl.com.  CNAME   300 myurl.com.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.