วิธีสลับ DNS สำหรับเว็บไซต์โดยไม่หยุดให้บริการ


13

ฉันต้องการเปลี่ยน DNS ของเว็บไซต์ของเราโดยไม่รบกวนบริการใด ๆ

IP ของเซิร์ฟเวอร์ยังคงเหมือนเดิม
โดยปกติจะใช้เวลา 24-48 ชั่วโมงเพื่ออัปเดตอินเทอร์เน็ตทั้งหมด
เป็นไปได้ไหมที่ DNS ทั้งสองทำงานพร้อมกัน

หมายเหตุสำคัญโดย JamesRyan:

โปรดทราบว่าเซิร์ฟเวอร์ DNS บางตัวไม่เคารพ TTL และแคชในระดับต่ำ คาดว่าจะทับซ้อนกันบ้าง

^ นี่ค่อนข้างเป็นปัญหา


พื้นหลัง:

ฉันเปลี่ยน DNS ของเว็บไซต์ของเราเป็นผู้ให้บริการรายอื่น (bluehost ซึ่งดูเหมือนว่าจะหักและมักจะแสดงหน้าโฆษณาของพวกเขาแทนเว็บไซต์ของเรา) ดังนั้นฉันจึงเปลี่ยนกลับไปใช้ DNS เดิมหลังจาก 2 ชั่วโมง

IP ของเซิร์ฟเวอร์ยังคงเหมือนเดิมดังนั้นฉันหวังว่าจะไม่ได้รับบริการขัดข้องเพราะ DNS ทั้งคู่แสดงเซิร์ฟเวอร์เดียวกัน

ขณะนี้ 24 ชั่วโมงต่อมา 30% ของอินเทอร์เน็ตยังคงใช้ผู้ให้บริการที่เสีย / ไม่ถูกต้อง (bluehost) ซึ่งไม่ได้อ้างอิงใน whois (เกี่ยวกับ Pingdom + รายงานผู้ใช้หลายรายที่ไม่สามารถเยี่ยมชมเราได้

คำตอบ:


18

วิธีที่เหมาะสมที่จะทำ:

  1. เปลี่ยนโซน TTL เป็นระดับต่ำสุด - ในกรณีส่วนใหญ่คือ 300 วินาที (5 นาที) ห้ามเปลี่ยนระเบียนใด ๆ ในขั้นตอนนี้
  2. รอ 48 ชั่วโมง
  3. ทำการเปลี่ยนแปลง ใช้เวลาเพียง 5 นาทีในการเผยแพร่การเปลี่ยนแปลง
  4. ย้อนกลับ TTL เป็นมาตรฐาน 48 ชั่วโมง

ขั้นตอนนี้ใช้กับการเปลี่ยนแปลงทั้งหมดไม่ใช่แค่การเปลี่ยนแปลง NS หากคุณต้องการเปลี่ยนที่อยู่ IP สำหรับบันทึก A มันจะทำงานในลักษณะเดียวกัน ขณะนี้อาจไม่จำเป็นอย่างยิ่งและในทางทฤษฎีคุณสามารถเรียกใช้เซิร์ฟเวอร์ชื่อสองตัวในเวลานั้นเป็นความคิดที่ไม่ดี คุณไม่มีทางรู้ว่าคุณไม่จำเป็นต้องทำการเปลี่ยนแปลงฉุกเฉินในช่วงเวลา 48 ชั่วโมงนี้หรือไม่


6
โปรดทราบว่าเซิร์ฟเวอร์ DNS บางตัวไม่เคารพ TTL และแคชในระดับต่ำ คาดว่าจะทับซ้อนกันบ้าง
JamesRyan

> โปรดทราบว่าเซิร์ฟเวอร์ DNS บางตัวไม่เคารพ TTL และแคชในระดับต่ำ <- ฉันคิดว่านี่เป็นปัญหาและรับผิดชอบการหยุดชะงักของบริการ!
Lupo

6
ไม่ใช่ในกรณีนี้ตราบใดที่คุณรักษาเซิร์ฟเวอร์ทั้งสองไว้ผ่านหน้าต่างการสลับสับเปลี่ยน 4 วัน
David Schwartz

1
ยังไม่ชัดเจนว่าคำตอบนี้จะจัดการสถานการณ์ที่เซิร์ฟเวอร์ชื่อยังคงเหมือนเดิมหรือไม่ แต่เว็บเซิร์ฟเวอร์ ip เปลี่ยนแปลง และแน่นอนว่าไม่ได้กล่าวถึงวิธีที่จะทำให้ระบบหยุดทำงานไม่กี่วินาที ฉันจะถามคำถามใหม่
Buttle Butkus

3

หากคุณกำลังเปลี่ยนผู้ให้บริการ DNS ของคุณ (เซิร์ฟเวอร์ชื่อที่แสดงใน whois) ใช่คุณสามารถเรียกใช้พวกเขาในแบบคู่ขนาน ดูโดเมนของฉัน TTL ที่เซิร์ฟเวอร์ GTLD ใช้ (คนที่บอกผู้ใช้อินเทอร์เน็ตรายอื่นที่ใช้ DNS ของฉัน) คือ 48 ชั่วโมง เท่าที่ฉันรู้ฉันไม่สามารถเปลี่ยนแปลงสิ่งนี้ได้

โดยปกติสิ่งที่คุณต้องทำคือให้ผู้รับจดทะเบียนโดเมนของคุณเปลี่ยนรายการเนมเซิร์ฟเวอร์เพื่อให้แน่ใจว่าผู้ให้บริการใหม่ได้ตั้งค่าไว้แล้วและผู้ให้บริการเดิมจะเก็บรายการของตนไว้เป็นเวลาอย่างน้อย 48 ชั่วโมง

ดังที่กล่าวไว้ในคำตอบอื่น ๆ หากคุณเพิ่งเปลี่ยนระเบียนของคุณเองคุณสามารถลด TTL ในระเบียนล่วงหน้าเพื่อให้การแลกเปลี่ยนแบบใกล้ทันทีแม้ว่าเซิร์ฟเวอร์ DNS บางตัวจะยังคงแคชนานกว่านั้น


> และผู้ให้บริการเก่ายังคงใช้งานได้อย่างน้อย 48 ชั่วโมง <- ฉันคิดว่านี่เป็นสิ่งที่ฉันทำผิด
Lupo

3

ก่อนอื่นมาทำความเข้าใจคำศัพท์ของเราให้ชัดเจนเพราะมันยังไม่ชัดเจนว่าคุณถามอะไร

การตั้งค่าโฮสต์ของคุณมีสามส่วน:

  1. นายทะเบียน
  2. เนมเซิร์ฟเวอร์ที่โฮสต์
  3. เซิร์ฟเวอร์ที่โฮสต์

ไม่ใช่เรื่องแปลกที่ทั้งสาม บริษัท นี้จะได้รับจาก บริษัท เดียวกัน แต่ไม่มีข้อกำหนดสำหรับมัน เป็นเรื่องปกติที่จะไม่มีการคิดค่าใช้จ่ายแยกต่างหากสำหรับ 2 เมื่อคุณซื้อ 1. จาก บริษัท เดียวกันเพิ่มความสับสน

ผู้รับจดทะเบียนมีหน้าที่แจ้งผู้ดูแลโดเมนหลักว่าโดเมนของคุณมีอยู่จริงและชื่อโดเมนนั้นคืออะไร

เนมเซิร์ฟเวอร์มีหน้าที่รับผิดชอบในการจับคู่โดเมนและโดเมนย่อยของคุณกับที่อยู่ IP (และอื่น ๆ ทั้งหมดที่เนมเซิร์ฟเวอร์สามารถทำได้)

เซิร์ฟเวอร์เป็นส่วนที่คุณคุ้นเคยมากที่สุดและเป็นที่ที่คำขอของเว็บไซต์และอีเมลสิ้นสุดลง

เมื่อคุณแน่ใจแล้วว่าต้องการเปลี่ยนคำถามใดคุณต้องการแก้ไขคำถามเพื่อให้ชัดเจนยิ่งขึ้น


ฉันจะสมมติว่าคุณกำลังเปลี่ยนเนมเซิร์ฟเวอร์ของคุณ ในการทำเช่นนี้คุณต้อง:

  1. ค้นหาโฮสต์เนมเซิร์ฟเวอร์ใหม่และตั้งค่าระเบียนทั้งหมดที่มีที่โฮสต์เนมเซิร์ฟเวอร์ปัจจุบันของคุณ
  2. ติดต่อนายทะเบียนของคุณและขอให้พวกเขาเปลี่ยนเนมเซิร์ฟเวอร์ที่เชื่อถือได้ให้เป็นชื่อใหม่ที่คุณเพิ่งตั้งค่า ขั้นตอนนี้จะใช้เวลาสักครู่เนื่องจากอาจไม่ทำทันทีและ TTL ที่เกี่ยวข้องมักใช้เวลา 48 ชั่วโมง
  3. เมื่อคำขอ DNS ใหม่ทั้งหมดมาถึงเซิร์ฟเวอร์ใหม่ให้ปิดคำขอเก่า

ขอบคุณ Ladadadada ฉันทำอย่างนี้ทั้งการกำหนดค่า DNS มีเรคคอร์ด A เดียวกันกับเซิร์ฟเวอร์เดียวกัน (และฉันหวังว่าจะไม่ได้รับบริการขัดข้อง) - แต่ดูเหมือนว่าเก่า (บลูโฮสต์) ไม่ได้ใช้การกำหนดค่าอีกต่อไป เพราะข้อมูล whois ได้แสดงให้กับเซิร์ฟเวอร์ใหม่แล้ว
Lupo

1
อานั่นเป็นรูปแบบที่โชคร้ายและน่าสงสารจาก Bluehost พวกเขาไม่ควรนำบันทึกของคุณออกจากเซิร์ฟเวอร์ชื่อของพวกเขาทันทีที่มีการเปลี่ยนแปลงการมอบหมาย พวกเขาควรตอบสนองต่อไปอย่างน้อย 48 ชั่วโมง
Ladadadada

3

A) ถ้าคุณใช้ไซต์บนบริการโฮสต์ที่ใช้ร่วมกัน - จัดการกับ DNS TTL ถ้าเป็นไปได้

B) หากคุณใช้เซิร์ฟเวอร์ของคุณเอง - สำหรับการหยุดทำงานของพร็อกซีเซิร์ฟเวอร์ที่ใช้น้อยที่สุดและตัวแยก IP (ส่วนหัว forwarded_for) บนปลายทาง (เพื่อให้ IP ต้นทางเหมือนกัน) ให้ย้ายไฟล์ของคุณหลังจากอัปเดตระเบียน DNS และรอจนกว่าปริมาณการใช้งาน หยุดบนเซิร์ฟเวอร์ต้นทาง


คำตอบของคุณดูเหมือนว่ามันอาจมีอัญมณีซ่อนอยู่บ้าง แต่มีเพียงคนที่รู้อยู่แล้วว่าคุณกำลังพูดถึงอะไรสามารถเข้าใจสิ่งที่คุณพูด ฉันต้องการเพิ่มลิงค์ไปยังโพสต์ของคุณ แต่ฉันไม่รู้ว่ามันถูกต้อง คุณหมายถึง X-Forwarded-For หรือเปล่า en.wikipedia.org/wiki/X-Forwarded-Forและสำหรับ IP extractor คุณหมายถึงสิ่งนี้: github.com/jonrohan/ip-extractor
Buttle Butkus

1
ขวา X-Forwarded- สำหรับการแยกควรเป็นเว็บเซิร์ฟเวอร์โมดูลซึ่งสามารถทำได้ในกรณีของ apache httpd: mod_extract_forwarded, mod_realip, mod_realip2 เป็นต้นโมดูลนี้จะแปลข้อมูลทั้งหมดไปยังโมดูลที่มีลำดับความสำคัญต่ำกว่าเช่น php ฯลฯ .
GioMac

IPExtractor ไม่มีส่วนเกี่ยวข้องกับบริการบนเว็บ
GioMac
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.