เมื่อย้าย
คู่มือปฏิบัติงานนี้แสดงวิธีเปลี่ยน
คำตอบ สั้นๆ
การย้าย
- ทำแผนที่ ว่าโดเมน DNS
เว็บไซต์ และอีเมล แต่ละอย่างอยู่ที่ไหน - Export DNS record ทุกตัว รวมถึง MX, SPF, DKIM และ DMARC
ตัดสินใจ ว่าอะไรต้องย้าย และย้ายทีละอย่าง คัดลอก และทดสอบเว็บไซต์ บนโฮสต์ใหม่ ด้วยโดเมนจริงของคุณ ก่อนเปลี่ยน DNS- ลดค่า TTL
ล่วงหน้า สองสามวัน แล้วเปลี่ยนเฉพาะ record ของเว็บไซต์ ตรวจสอบ เว็บไซต์ SSL ฟอร์ม และอีเมล- เปิดโฮสต์เดิมไว้ จนกว่า log ของมันจะเงียบ
ไม่มีเว็บล่ม เพราะเซิร์ฟเวอร์ทั้งสองเสิร์ฟ
ขั้นที่ 1: ทำแผนที่ว่าอะไรอยู่ที่ไหน
| บริการ | ทำหน้าที่อะไร | |
|---|---|---|
| การ |
ทำให้คุณเป็นเจ้าของชื่อ | จดผ่านโฮสต์เดิม เสี่ยงเมื่อปิดบัญชีนั้น |
| DNS hosting | เก็บ record ที่ชี้ไปยังทุกอย่าง | โฮสต์เดิมเป็น |
| เว็บ |
เสิร์ฟ |
ส่วนเดียวที่คน |
| อีเมล |
เก็บกล่องอีเมลและรับอีเมล | กล่องอีเมลในบัญชี |
ตรวจด้วยdig NS example.com และ dig MX example.com จะแสดง nameserver และเมลเซิร์ฟเวอร์ของคุณ ถ้า MX record ระบุชื่อ Google หรือ Microsoft แปลว่าอีเมลของคุณอยู่ที่นั่น ถ้าชี้ไปที่โดเมนของคุณเอง mail.example.com หรือโฮสต์เดิม อีเมลน่าจะเป็นส่วนหนึ่งของ
ขั้นที่ 2: export DNS record ทุกตัวก่อน
คุณดูรายการ record ทั้งหมดของโดเมนจากภายนอกให้
| Record | ทำหน้าที่อะไร |
|---|---|
| A และ AAAA | ชี้ชื่อไปยังที่อยู่ IPv4 หรือ IPv6 ของเซิร์ฟเวอร์ |
| CNAME | ชี้ชื่อหนึ่งไปยังอีกชื่อหนึ่ง มักใช้กับ www |
| MX | |
| SPF (TXT) | ระบุเซิร์ฟเวอร์ที่ได้รับอนุญาตให้ส่งอีเมลในนามของคุณ |
| DKIM (TXT หรือ CNAME) | |
| DMARC (TXT) | บอกฝั่งผู้รับว่าต้องทำอย่างไรกับอีเมลที่ไม่ผ่านการตรวจ |
| ยืนยันความเป็นเจ้าของ (TXT) | พิสูจน์ความเป็นเจ้าของกับ Search Console และ |
| CAA | จำกัดว่าผู้ออก |
DKIM พลาดได้ง่าย เพราะอยู่ใต้ชื่อที่คุณต้องรู้ก่อน เช่น selector._domainkey.example.com หา selector ได้จาก header แบบเต็มของอีเมลที่บริษัทคุณส่งออกไป คือค่า s= ในแต่ละบรรทัด DKIM-Signature
ตรวจว่าอีเมลย้ายตามเว็บไปด้วยไหม
ในโฮสต์แบบแชร์หลายเจ้า โดยเฉพาะที่ใช้ cPanel MX record จะชี้ไปที่ตัวโดเมนเอง หรือ mail.example.com ซึ่งเป็นชื่อแฝง (CNAME) ของโดเมน เมื่อเปลี่ยน A record ของโดเมน อีเมลของคุณก็จะย้ายไปพร้อมกับ
ถ้ากล่องอีเมลจะอยู่ที่เดิม ให้ตั้ง A record ของ mail.example.com แยก
ขั้นที่ 3: ตัดสินใจ ว่าอะไรต้องย้าย และย้ายทีละอย่าง
การย้าย
ถ้าทำได้ ให้ DNS อยู่ที่เดิม
การเปลี่ยน A record ทำได้เร็วและย้อนกลับได้ การเปลี่ยน nameserver ช้ากว่า เพราะ registry ที่ดูแลนามสกุลโดเมนของคุณ (.com, .org และอื่นๆ) เป็นผู้
ถ้า DNS ต้องย้าย ให้ย้ายก่อน
ถ้าโฮสต์เดิมดูแล DNS ของคุณ และคุณจะเลิกใช้โฮสต์นั้นทั้งหมด ให้
ตรวจ DNSSEC ก่อน ถ้าเปิดใช้อยู่ ให้ลบ DS record ที่ registrar แล้วรอหนึ่งถึงสองวันก่อนสลับ หรือทำตาม
ถ้าอีเมลอยู่ที่โฮสต์เดิม ให้แยกเป็นอีกโปรเจกต์
เลือก
ขั้นที่ 4: คัดลอก และทดสอบบนโฮสต์ใหม่
ทำสภาพแวดล้อม ให้ตรงกัน
ปัญหา “บนเซิร์ฟเวอร์เดิมใช้ได้นะ”
- เวอร์ชัน PHP และส่วนขยาย เวอร์ชัน
ฐานข้อมูล ขีดจำกัด หน่วยความจำและการอัปโหลด - กฎของเซิร์ฟเวอร์ redirect ในไฟล์
.htaccessของ Apache ไม่มีผลบน Nginx และต้องเขียนใหม่ - งานตั้งเวลา (cron job) สำหรับสำรองข้อมูล ฟีด หรือโพสต์ที่ตั้งเวลาไว้
- บริการภายนอกที่รับเฉพาะ IP ของเซิร์ฟเวอร์คุณ เช่น payment gateway หรือ CRM
คัดลอก ไฟล์และฐานข้อมูล
สำหรับ WordPress ให้wp-content wp-config.php และไฟล์อื่นในโฟลเดอร์หลัก เช่น .htaccess โดยใช้ปลั๊กอินย้ายเว็บ บริการย้ายเว็บของโฮสต์ หรือ export เอง
ใช้โดเมนเดิม ถ้า URL ต้องเปลี่ยนชั่วคราว อย่าใช้การค้นหาและแทนที่ในไฟล์search-replace ของ WP-CLI จัดการเรื่องนี้ได้อย่างปลอดภัย
ทดสอบบนโดเมนจริง ก่อนเปลี่ยน DNS
URL 203.0.113.10 example.com www.example.com (IP ของเซิร์ฟเวอร์ใหม่) ลงใน /etc/hosts บน macOS หรือ Linux หรือ C:\Windows\System32\drivers\etc\hosts บน Windows คุณจะเห็นเซิร์ฟเวอร์ใหม่บนโดเมนจริง ขณะที่คนอื่นยังเห็นเซิร์ฟเวอร์เดิม
ยืนยันด้วยไฟล์
จัดการ SSL ก่อนสลับ
เซิร์ฟเวอร์ใหม่ต้องมี
ขั้นที่ 5: ลดค่า TTL แล้วสลับ
ลด TTL ล่วงหน้า
DNS record ทุกตัวมีค่า TTL หรืออายุในแคช คือจำนวนวินาทีที่ resolver เก็บ record นั้นไว้ในแคชได้ สิ่งที่คนเรียกว่า DNS propagation ก็คือการหมดอายุของแคชเหล่านั้น ถ้า TTL เป็น 86400 (24 ชั่วโมง)
ลำดับการสลับ
- เลือกช่วงเวลาที่เงียบ และหยุดแก้ไขเนื้อหา
- ถ้าเนื้อหา ข้อมูลจากฟอร์ม หรือ
คำสั่งซื้อ มีการเปลี่ยนแปลงหลังจากคัดลอก ไปทดสอบ ให้คัดลอก ฐานข้อมูล อีกรอบ โดยพักระบบชำระเงินหรือระบบจองไว้ระหว่าง นั้น - ชี้ A record ของโดเมนหลักไปที่เซิร์ฟเวอร์ใหม่ และทำกับ
wwwด้วย ถ้าไม่ได้เป็นชื่อแฝงของโดเมนหลัก - อัปเดตหรือลบ AAAA record ถ้าเซิร์ฟเวอร์ใหม่ไม่มีที่อยู่ IPv6 record เก่าจะทำให้
ผู้เข้าชม ที่ใช้ IPv6 ยังไปที่เซิร์ฟเวอร์เดิม - อย่าแตะ record ของ MX, SPF, DKIM และ DMARC รวมถึง record ยืนยันความเป็นเจ้าของ และ
ซับโดเมน ของอีเมล เมื่อแก้เรื่องอีเมลตามขั้นที่ 2 เรียบร้อยแล้ว - ตรวจจากภายนอก ด้วย
เครื่องมือ DNS lookup ออนไลน์ หรือdig +short example.com A @1.1.1.1แล้วตามด้วย@8.8.8.8
เขียนแผนย้อนกลับไว้ก่อน จดค่าเดิมทุกค่าก่อนเปลี่ยน เมื่อเซิร์ฟเวอร์เดิมยังไม่ถูกแตะ และ TTL สั้น การย้อนกลับใช้เวลาแค่ไม่กี่นาที
ขั้นที่ 6: ตรวจเว็บไซต์ และอีเมล
หน้าแรกที่โหลดขึ้นพิสูจน์ได้น้อยมาก ให้ตรวจตามนี้ แล้วตามด้วย
URL ที่ไม่เปลี่ยน ไม่ต้องใช้
ทำไมอีเมลจากฟอร์มพังหลังย้ายโฮสต์
ถ้า
วิธีแก้ที่ยั่งยืน คือส่งผ่าน SMTP แบบยืนยัน
อีก
ขั้นที่ 7: เปิดโฮสต์เดิมไว้จนกว่าจะเงียบ
การยกเลิกโฮสต์เดิมในวันย้าย คือ
- ดู access log ของมัน เมื่อเหลือแค่บอทเข้ามาประปราย แปลว่าแคชตามทันแล้ว
- เก็บข้อมูลที่หลงไป ได้แก่ ข้อมูลจากฟอร์ม
คำสั่งซื้อ หรืออีเมลที่ไปถึงเซิร์ฟเวอร์เดิมระหว่าง การสลับ - ดาวน์โหลดข้อมูลสำรองแบบเต็ม ทั้งไฟล์
ฐานข้อมูล และกล่องอีเมล (ถ้ามี) - ปรับ TTL กลับ เป็นค่าปกติ เช่น 3600 วินาที
- จัดการสิทธิ์การ
เข้าถึง ลบปลั๊กอินย้ายเว็บและบัญชีล็อกอินชั่วคราว และเปลี่ยนรหัสผ่าน ที่แชร์กันระหว่าง ย้าย คู่มือความปลอดภัย WordPress อธิบายส่วนที่เหลือ - ตรวจโดเมน ถ้า
จดทะเบียน ผ่านโฮสต์เดิม ให้โอนย้าย ก่อนปิดบัญชี
ก่อนย้ายเว็บไซต์ ไปโฮสต์ใหม่
การสลับใช้เวลาไม่กี่นาที แต่การทำแผนที่ การทดสอบ และความอดทนรอบๆ นั้น คือสิ่งที่ทำให้เว็บไม่ล่ม และอีเมลยังรับส่งได้ต่อไป
โฮสต์ใหม่แก้ปัญหา
ไม่แน่ใจว่าเซิร์ฟเวอร์คือสิ่งที่ทำให้