วิธีเชื่อมต่อ Domain Name เข้ากับ Server สำหรับมือใหม่หัดทำเว็บ

8 นาที 10 views บันทึกเป็น PDF
วิธีเชื่อมต่อ Domain Name เข้ากับ Server สำหรับมือใหม่หัดทำเว็บ

อยากทำเว็บให้คนอื่นเข้าถึงได้ง่ายต้องทำยังไง? มาเรียนรู้วิธีชี้ Domain Name ไปยัง Server ด้วยการตั้งค่า DNS (A Record) แบบเข้าใจง่าย พร้อมเทคนิคการจัดการค่า TTL

ทำไมต้องมี Domain Name ในการพัฒนาซอฟต์แวร์

เวลาที่เราเช่าเซิร์ฟเวอร์มาใหม่ เรามักจะเข้าถึงมันผ่านหมายเลข IP Address (เลขที่อยู่ของคอมพิวเตอร์บนอินเทอร์เน็ต) ซึ่งตัวเลขยาว ๆ เหล่านี้จำยากมากสำหรับมนุษย์ เราจึงต้องใช้สิ่งที่เรียกว่า Domain Name (ชื่อเว็บไซต์ที่ตั้งขึ้นเพื่อให้จดจำได้ง่าย) เข้ามาช่วยเปรียบเสมือนการบันทึกเบอร์โทรศัพท์เพื่อนไว้ในรายชื่อ แทนที่จะต้องจำเบอร์ยาว ๆ เอง

การมีโดเมนไม่ใช่แค่เรื่องความสวยงาม แต่เป็นหัวใจสำคัญของการทำ Production (การนำระบบขึ้นใช้งานจริง) หากไม่มีโดเมนที่ชี้ไปยังเซิร์ฟเวอร์เราโดยตรง เราจะไม่สามารถขอ SSL Certificate (ใบรับรองความปลอดภัยที่ทำให้เว็บไซต์เป็น HTTPS) จากผู้ให้บริการอย่าง Let's Encrypt ได้ ซึ่งจะทำให้เบราว์เซอร์แจ้งเตือนว่าเว็บไซต์ของเราไม่ปลอดภัย

นอกจากนี้ การเชื่อมต่อโดเมนยังเป็นพื้นฐานของการทำระบบเครือข่ายให้เป็นระเบียบ เมื่อคุณเริ่มทำโปรเจกต์ที่ซับซ้อนขึ้น คุณอาจต้องการแยกชื่อโดเมนย่อย เช่น cloud.yourdomain.com หรือ git.yourdomain.com เพื่อให้ผู้ใช้งานเข้าถึงบริการต่าง ๆ ของคุณได้สะดวกและดูเป็นมืออาชีพมากขึ้นครับ

เตรียมตัวก่อนเริ่มเชื่อมต่อโดเมน

ก่อนจะเริ่มลงมือทำ เราต้องเตรียม Prerequisites (สิ่งที่ต้องมีก่อนเริ่มงาน) ให้พร้อมก่อน สิ่งแรกคือเซิร์ฟเวอร์ที่ติดตั้งเสร็จแล้วพร้อมกับรู้ค่า Public IP (หมายเลขไอพีที่เข้าถึงได้จากอินเทอร์เน็ต) ของตัวเอง และต้องมีโดเมนที่จดทะเบียนไว้เรียบร้อยแล้ว รวมถึงสิทธิ์ในการเข้าถึง DNS Management (หน้าตั้งค่าการจัดการโดเมน) ของผู้ให้บริการโดเมนที่คุณซื้อมา

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

# แสดงเลข IP เวอร์ชั่น 4 ของเซิร์ฟเวอร์
ip -4 addr show scope global

# แสดงเลข IP เวอร์ชั่น 6 ของเซิร์ฟเวอร์
ip -6 addr show scope global

คำสั่ง ip -4 addr จะแสดงเลขไอพีหลัก (เช่น 203.0.113.10) ที่เราต้องใช้ ส่วน ip -6 addr จะแสดงเลขไอพีเวอร์ชั่นใหม่ที่มีความยาวมากกว่า ถ้าเซิร์ฟเวอร์ไม่มี IPv6 ก็ไม่ต้องกังวลครับ ให้จดเฉพาะเลข IPv4 ไว้ก็เพียงพอแล้วสำหรับการเริ่มต้นใช้งาน

สร้าง A Record เพื่อชี้โดเมนไปที่เซิร์ฟเวอร์

เมื่อได้เลข IP มาแล้ว เราต้องไปที่หน้าจัดการ DNS ของผู้ให้บริการโดเมนเพื่อสร้าง Resource Records (บันทึกข้อมูลการตั้งค่าชื่อโดเมน) ซึ่งตัวที่สำคัญที่สุดคือ A Record (บันทึกที่ใช้จับคู่ชื่อโดเมนกับเลข IP เวอร์ชั่น 4) เพื่อบอกอินเทอร์เน็ตว่าถ้ามีคนพิมพ์ชื่อโดเมนนี้ ให้วิ่งไปที่เลข IP ของเซิร์ฟเวอร์เรา

ให้คุณล็อกอินเข้าหน้าจัดการ DNS แล้วเพิ่มค่าเหล่านี้ลงไป

  • Type: A, Host: @, Value: เลข IP ของคุณ
  • Type: A, Host: www, Value: เลข IP ของคุณ
  • Type: AAAA, Host: @, Value: เลข IPv6 ของคุณ (ถ้ามี)

เครื่องหมาย @ คือการแทนค่าโดเมนหลักของเรา ส่วน www คือการรองรับชื่อที่มี www นำหน้า ที่ต้องทำแบบนี้เพราะคนส่วนใหญ่ยังคงชินกับการพิมพ์ www นำหน้าชื่อเว็บไซต์อยู่ครับ สำหรับ AAAA Record (บันทึกที่ใช้จับคู่ชื่อโดเมนกับเลข IP เวอร์ชั่น 6) จะใช้สำหรับ IPv6 เท่านั้น ซึ่งชื่อเรียกนี้มาจาก IPv6 ที่มีความยาวเป็น 4 เท่าของ IPv4 นั่นเอง

เข้าใจเรื่อง TTL และการกระจายตัวของ DNS

ทุกครั้งที่เราเพิ่มข้อมูล DNS จะมีค่าหนึ่งที่เรียกว่า TTL (Time To Live - เวลาที่ข้อมูลนี้จะมีชีวิตอยู่) ซึ่งกำหนดเป็นหน่วยวินาที เช่น 3600 วินาที หรือ 1 ชั่วโมง ค่านี้จะบอกให้คอมพิวเตอร์ทั่วโลกที่มาเช็คชื่อโดเมนเราว่า ให้เก็บข้อมูลนี้ไว้ในเครื่องก่อนนะ ไม่ต้องมาถามซ้ำบ่อย ๆ จนกว่าเวลาจะหมด

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

ถ้าคุณมีแผนจะย้ายเซิร์ฟเวอร์ในอนาคต ผมแนะนำให้ลดค่า TTL ให้ต่ำลงเหลือประมาณ 300 วินาที (5 นาที) ล่วงหน้าสัก 1-2 วัน วิธีนี้จะทำให้การเปลี่ยนค่า IP ในวันจริงเห็นผลเกือบจะทันทีทั่วโลก หลังจากย้ายเสร็จแล้วอย่าลืมปรับค่านี้กลับเป็นค่าปกติเพื่อประหยัดการทำงานของระบบ DNS ครับ

ตรวจสอบการตั้งค่าด้วยเครื่องมือ dig

หลังจากตั้งค่าเสร็จแล้ว เราต้องตรวจสอบว่าโดเมนของเราวิ่งไปที่เซิร์ฟเวอร์ถูกต้องหรือไม่ เครื่องมือที่โปรแกรมเมอร์นิยมใช้คือ dig (Domain Information Groper - เครื่องมือสั่งถามข้อมูลจากระบบ DNS) หากคุณใช้ Linux หรือ Ubuntu สามารถติดตั้งได้ด้วยคำสั่ง sudo apt install bind9-dnsutils ครับ

เมื่อติดตั้งเสร็จแล้ว ให้ลองทดสอบด้วยคำสั่งนี้เพื่อดูว่าโดเมนของเราชี้ไปที่ IP ไหน

# ตรวจสอบว่าโดเมนชี้ไปที่ IP ไหน
dig +short yourdomain.com A

ผลลัพธ์ที่ควรเห็นคือเลข IP ของเซิร์ฟเวอร์ที่คุณตั้งค่าไว้ในขั้นตอนก่อนหน้า เช่น 152.53.246.100 หากคำสั่งนี้แสดงเลข IP ตรงกับในเซิร์ฟเวอร์ แสดงว่าการเชื่อมต่อสำเร็จแล้ว ถ้ายังไม่ขึ้น ให้ลองรอสักพักเพื่อให้ระบบอัปเดตข้อมูลหรือลองใช้คำสั่ง dig +short yourdomain.com @1.1.1.1 เพื่อเช็คผ่านระบบ DNS สาธารณะแทนครับ

ทำความรู้จักกับ Reverse DNS (PTR)

ถ้าคุณต้องการให้เซิร์ฟเวอร์ของคุณส่งอีเมลได้โดยไม่ถูกมองว่าเป็นสแปม คุณต้องตั้งค่า Reverse DNS (การย้อนกลับจากเลข IP ไปหาชื่อโดเมน) หรือที่เรียกว่า PTR Record (Pointer Record - บันทึกที่ใช้ชี้จาก IP กลับไปหาชื่อโดเมน) ซึ่งต่างจาก A Record ที่เราทำตอนแรก เพราะการตั้งค่านี้ต้องทำที่หน้าจัดการของ VPS Provider (ผู้ให้บริการเช่าเซิร์ฟเวอร์) ไม่ใช่ที่ผู้ให้บริการโดเมน

การตั้งค่านี้สำคัญมากสำหรับโปรแกรมเมอร์ที่ทำระบบแจ้งเตือนผ่านอีเมลจากเซิร์ฟเวอร์ตัวเอง หากไม่มี PTR record เซิร์ฟเวอร์อีเมลปลายทางอาจปฏิเสธข้อความของคุณทันที การตั้งค่าคือเข้าไปที่เมนู Network ในหน้าจัดการเซิร์ฟเวอร์ของคุณ แล้วใส่ชื่อโดเมนลงในช่อง Reverse DNS ให้ตรงกับเลข IP ของคุณครับ

ข้อควรระวังคือค่า Forward and Reverse (การชี้ไปและชี้กลับ) ต้องตรงกันเสมอ หมายความว่าชื่อที่คุณใส่ใน PTR ต้องชี้กลับมาที่เลข IP นี้ด้วย A Record ที่เราสร้างไว้ในขั้นตอนแรก การตรวจสอบทำได้โดยใช้คำสั่ง dig -x [IP_ADDRESS] ซึ่งควรจะแสดงชื่อโดเมนของคุณกลับมาครับ

สรุป

การเชื่อมต่อโดเมนเป็นทักษะพื้นฐานที่โปรแกรมเมอร์ทุกคนต้องทำได้ เพราะมันคือประตูบานแรกที่จะทำให้โปรเจกต์ของคุณออกสู่โลกภายนอก เราได้เรียนรู้ตั้งแต่การทำ A Record เพื่อชี้โดเมนไปที่เซิร์ฟเวอร์ การเข้าใจค่า TTL เพื่อรับมือกับการอัปเดตข้อมูล และการใช้ dig เพื่อตรวจสอบความถูกต้อง ซึ่งทั้งหมดนี้จะช่วยให้คุณจัดการระบบได้เหมือนมืออาชีพ

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


ที่มา: Connecting a domain to your server (DNS basics) — DEV Community

แชร์บทความ

Facebook X LINE

บทความที่เกี่ยวข้อง

เทคนิคเขียนแอป Flutter สำหรับ Meta Smart Glasses ให้ลื่นไหลและมีประสิทธิภาพ

เทคนิคเขียนแอป Flutter สำหรับ Meta Smart Glasses ให้ลื่นไหลและมีประสิทธิภาพ

เรียนรู้วิธีเขียนแอป Flutter เชื่อมต่อ Meta Smart Glasses ให้ทำงานเร็ว ไม่กระตุก ด้วยการวางสถาปัตยกรรมโค้ดและการจัดการข้อมูลแบบมือโปรที่มือใหม่ทำตามได้จริง

ที่มา: DEV Community

5 hours ago 10 นาที
5 views
เปรียบเทียบ WebSocket, SSE และ Polling เลือกวิธีทำระบบ Real-Time ให้เหมาะกับงาน

เปรียบเทียบ WebSocket, SSE และ Polling เลือกวิธีทำระบบ Real-Time ให้เหมาะกับงาน

อยากทำระบบ Real-Time แต่ไม่รู้จะเลือกใช้ Polling, SSE หรือ WebSocket ดี? มาดูวิธีเลือกใช้ให้เหมาะกับงาน เพื่อให้แอปของคุณทำงานลื่นไหลและประหยัดทรัพยากรเซิร์ฟเวอร์

ที่มา: DEV Community

8 hours ago 10 นาที
4 views