อยากมีเว็บไซต์เป็นของตัวเอง ต้องทำยังไง ? [ตอนที่ 2 ]-เซิร์ฟเวอร์ (server) เช่าที่ไหน

9zax
4 min readJul 2, 2024

--

เกริ่นนำ ต่อเนื่องจาก [ตอนที่ 1] ที่เราได้รู้แล้วว่า โดเมน (domain) ได้มายังไงแล้วนั้น ใน [ตอนที่ 2] นี้เราจะมาพูดถึงเรื่อง การเช่าเครื่อง Server ให้เป็นเหมือนคอมส่วนตัว ที่รันพร้อมใช้อยู่ตลอด และมี public ip address ที่พร้อมให้เราเข้าถึงได้จากทุกที่เมื่อมี Internet

** และเช่นเดียวกัน เมื่อเราจ่ายทุกอย่างก็จบ (จ่ายไปกับเครื่อง Server ครับรอบนี้)

ตอน… เซิร์ฟเวอร์ (server) เช่าที่ไหน

ใน [ตอนที่ 2] นี้ เราจะมาเช่าเครื่อง Server กัน หลักๆ ที่ผมใช้ราคาค่อนข้างถูก ก็จะมี 2 ที่คือ

  1. DigitalOcean
  2. LayerStack (เกิดมาทีหลัง digital ocean และถูกกว่า)

แต่วันนี้ผมจะพาเพื่อนๆ เช่าใช้กับ DigitalOcean ครับ

สมัครสมาชิกให้เรียบร้อย แล้วลุยกั๊นนนน !!

เมนูฝั่งบนขวาของหน้าจอ Create -> Droplets เพื่อที่เราจะสร้าง (เครื่อง Server)

Link Create Droplet

เลือก Region ที่วางเครื่อง Server ของเรา ใกล้กับเราสุดน่าจะเป็น Singapore เลือกเลย

Region Zone
Os Version

เลือก Os Version แนะนำให้เป็น Ubuntu 20.04 ไปก่อน หรือเพื่อนๆ ต้องการ Os อื่นๆ เพื่อสะดวกใช้ในการใช้งาน ซึ่งเราจะนำเครื่องนี้ไปรัน Web Application กัน

Hardware Spec

เลือก Hardward Spec ให้เหมาะสมกับ Application ที่เราจะเอาไปวางนะครับ ส่วนผมเลือกให้เหมาะกับเงินในกระเป๋าตอนนี้ 55++++

Authentication Method

เลือกการ Authentication เพื่อที่จะให้เข้าถึงเครื่อง Server มี 2 วิธี คือ

  1. SSH Key ปลอดภัยมากกว่าแบบที่ 2 ปล.ถ้ายังไม่มี ก็เลือกแบบที่ 2 ไปก่อนนะครับ ซึ่งเราสามารถกลับมาตั้งเป็น SSH Key ภายหลังได้
  2. Password เวลาเข้าถึงเครื่อง server ก็จะให้ระบุ Password แต่วิธีการนี้ไม่แนะนำนะครับ เพราะถ้าเราตั้งรหัสผ่านไม่ปลอดภัย ก็มีโอกาสหลุดได้ถ้ามีคนเดาถูก เราก็โดนยึดเครื่องไปได้ง่ายๆ ครับ

แต่วันนี้ผมเลือกวิธีการ Authentication แบบที่ 2 คือ Password เพราะผมสร้าง Server ขึ้นมาเพื่อมาแชร์เพื่อนๆ เฉยๆ ครับ แบบว่าลงทุนสุดอะค้าบ

ตั้งค่า Password ให้ตรงกับที่ระบบเค้ากำหนด เพื่อความปลอดภัยค้าบ
จิ้มเลย (Create Droplet) ปล.จิ้มปุ่มของเพื่อนๆ นะครับ ไม่ใช่รูปผม 55+
กำลังสร้าง รอสักครู่
เย้ ได้แล้วเครื่อง Server ที่มาพร้อมกับ Public Ip Address

​สำหรับเพื่อนๆ คนไหนที่ยังสร้างไม่ได้ก็ ผูกบัตร Credit หรือ Debit ให้เรียบร้อยก่อนนะครับ ค่อยสร้างได้ ปล. เราผูกบัตรแล้วสามารถยกเลิกได้ครับ ถ้าเราไม่จ่าย เค้าก็แค่ลบเครื่องเรา แฟร์ๆ จบๆ

ต่อกัน Public Ip Address ของผมคือ 209.xxx.xxx.xxx ซึ่งของเพื่อนๆ แต่ละคนก็จะไม่เหมือนกัน เราสามารถลองเข้าไปยัง Server ของเราได้ โดยคำสั่งนี้ครับ

ssh root@209.xxx.xxx.xxx
ผลลัพธ์ตอนรัน ssh

พิมพ์ yes ไป เพื่อดำเนินการเชื่อมต่อและบันทึกคีย์ของเซิร์ฟเวอร์ลงในไฟล์ known hosts ของเครื่องเพื่อนๆ ที่ไฟล์นี้ ~/.ssh/known_hosts
และครั้งต่อไปจะไม่ถามแล้ว เพราะรู้จักเครื่องนี้แล้ว

เสร็จแล้ว มันจะถามรหัสผ่าน ก็กรอกที่เพื่อนๆ ตั้งไปครับ โดยหน้าจอ Terminal จะไม่แสดงให้เราเห็นนะครับ เวลาเรากรอกรหัส เพื่อความปลอดภัย

แทแด๊ เข้าได้แล้ว 🥳🥳🥳

ต่อไปผมจะนำ Domain ที่เราสร้างไว้ใน [ตอนที่ 1] มาเชื่อมกับเครื่อง Server ที่เราสร้างเสร็จใหม่ๆ นี้ แล้วทำยังไงหละ นั่นสิ ทำยังไง ไปดูวววววว

ให้เพื่อนๆ กลับไปที่เว็บไซต์ที่เราเช่า Domain ซึ่งในตัวอย่างนี้คือ Godaddy จิ้มๆ แล้วเลือก Domain ที่เพื่อนๆ เช่าไว้จนเข้ามาถึงหน้านี้

ต่อไปเลือก -> จัดการโดเมน เมนูขวา รูปเฟือง

Select Tab DNS

เลือก Tab ที่สอง DNS จะเจอดังภาพ เราก็ทำการตั้งค่า จากตารางด้านล่าง เลื่อนลงมานิดนึง แล้วเพื่อนๆ จะเจอตาราง ให้เพื่อนๆ ดูที่ ประเภทที่เป็น A Reccord จะมี default ip address อยู่ เราไม่ต้องการ เราต้องการให้ชี้ไปเรื่องที่เราสร้างจาก Digital Ocean เมื่อตะกี้นี้ ซึ่งเราก็เปลี่ยนจาก Parked ค่าเดิมนั้นไปเป็น -> Public Ip Address (209.xxx.xxx.xxx) ของ Server เรา

กดแก้ไข A Reccord
ใส่ไปเลย Public Ip Address ของเพื่อนๆ

กำหนด Public Ip Address แล้วกำหนดเวลา TTL 600 วินาที
ซึ่ง TTL
คือระยะเวลาที่ข้อมูล DNS cache (เช่น A record, MX record, หรือ CNAME record) สามารถถูกเก็บไว้ใน cache ของ DNS resolver ก่อนที่จะต้องทำการอัปเดตใหม่จาก DNS server ต้นทาง เราจึงใส่น้อยๆ สุดไปก่อน เพื่อจะได้เห็นผลลัพธ์ไวๆ

เกร็ดความรู้เพิ่มเติม เมื่อเพื่อนๆ ต้องการ Sub domain เช่น app.9zax.me, work.9zax.me, [??].9zax.me

ให้เพื่อนๆ ไปเพิ่มเรคคอร์ดใหม่ แล้วเลือกประเภทเป็น CNAME

ปล. A Record เราก็ต้องกำหนดเหมือนเดิมนะครับ บังคับ เพราะจะเป็นตัวชี้ไปยังเครื่อง Server ของเรา ขาดไม่ได้

เพิ่มตามที่ต้องการที่เมนูนี้ บนตารางมุมซ้าย
ตัวอย่างจะได้ 9zax.me :: ที่มี subdomain คือ app.9zax.me

กลับมาดูกันต่อๆ

หลังจากบันทึกแล้ว ก็รอไปสักพักใหญ่ๆ บางคนอาจ Ping Domain Name แล้วตอบกลับมาเป็น Ip Address อื่น ที่ไม่ใช่อย่างที่เพื่อนๆ ต้องการ ก็รอไปนะครับ

รันคำสั่งเพื่อเช็คดูใน Terminal ดังนี้

หรือสามารถเข้าเว็บไซต์เพื่อเช็คว่า Domain Name ของเรา ชี้ไปยัง Server Public Ip Address ไหน

https://dnschecker.org/

ค้นหาตาม domain name ของเพื่อนๆ น้าาา

ดูผลลัพธ์ในตาราง ว่าเวลา Search แล้วจะได้ Ip Address อะไร เป็นอย่างที่เพื่อนๆ ต้องการรึป่าว รอยาวๆ ไป

ปล.ถ้าเพื่อนๆ ต้องการให้ตอบเป็น Ip Address หลอก ต้องการปกปิดไอพีจริง สามารถใช้ Cloudflare จัดการได้ ซึ่งผมจะมาเล่าในรอบต่อๆ ไปนะครับ รอบนี้รอไปก๊อนนนน!!

ผลลัพธ์ หลังจากรัน command ping ที่ terminal ตอบเป็น Public Ip Address ที่ต้องการแว้ววว

ผลลัพท์หลังจากรัน ping 9zax.me

ระหว่างนี้ให้เพื่อนๆ ได้พักหายใจหายคอกันก่อน แล้วมาต่อใน [ตอนที่ 3] ซึ่งเป็นตอนสุดท้ายแล้วว เย้

ตอนสุดท้าย ผมจะพูดถึงการ

  1. รัน Web Application หรือ Service (Api) ต่างๆ ที่เครื่อง Server
  2. รัน Nginx ที่เครื่อง Server เพื่อให้ ส่งต่อไปยังแอพของเพื่อนๆ ที่รันอยู่บนนั้น ซึ่งผมจะทำให้เห็นภาพ ได้ดังนี้
รูปเพื่ออธิบายให้เห็นภาพคร่าวๆ เฉยๆ นะครับ

โปรดติดตาม ตอนต่อปายย !! 🍻🍻 ชนแก้ววววว

__________ [ตอนที่ 3] ตอนสุดท้ายมาแย้ววว จิ้มมมมมแรงๆ🤏🤏 __________

--

--