Next.js คืออะไร และวิธี Deploy บน Cloud Server
Next.js คือเฟรมเวิร์กสำหรับสร้างเว็บด้วย React ที่เรนเดอร์ฝั่งเซิร์ฟเวอร์ได้ ทำให้เว็บโหลดเร็วและทำ SEO ได้ดี ต่างจากเว็บที่เรนเดอร์ในเบราว์เซอร์อย่างเดียว
- หมวดหมู่
- ภาษาโปรแกรมและ Framework
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 4 GB
- ไลเซนส์
- MIT (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
Next.js คืออะไร
เว็บที่สร้างด้วย React ล้วนจะส่งหน้าเปล่ามาให้เบราว์เซอร์แล้วค่อยเรนเดอร์เนื้อหา ซึ่งทำให้เครื่องมือค้นหาอ่านเนื้อหาได้ไม่ดีและผู้ใช้เห็นหน้าเปล่าในช่วงแรก
Next.js แก้ด้วยการเรนเดอร์หน้าที่เซิร์ฟเวอร์ก่อนส่งให้เบราว์เซอร์ ผู้ใช้จึงเห็นเนื้อหาทันทีและเครื่องมือค้นหาอ่านได้ครบ พร้อมเลือกได้ว่าหน้าไหนสร้างล่วงหน้าและหน้าไหนเรนเดอร์ตอนมีคำขอ
การนำขึ้นใช้งานจริงมีสองทางหลัก คือใช้บริการที่โฮสต์ให้ซึ่งสะดวกแต่คิดค่าบริการตามการใช้งาน กับรันบน Cloud Server ของตัวเองซึ่งควบคุมค่าใช้จ่ายได้และเชื่อมกับฐานข้อมูลภายในได้โดยตรง
ความสามารถเด่นของ Next.js
เรนเดอร์ฝั่งเซิร์ฟเวอร์
ผู้ใช้เห็นเนื้อหาทันทีและเครื่องมือค้นหาอ่านได้ครบ
สร้างหน้าล่วงหน้าได้
หน้าที่ไม่เปลี่ยนบ่อยถูกสร้างไว้ก่อนจึงตอบเร็วมาก
เขียน API ในโปรเจกต์เดียวกัน
ไม่ต้องแยกโปรเจกต์หลังบ้านสำหรับงานที่ไม่ซับซ้อน
ปรับภาพให้เหมาะกับอุปกรณ์อัตโนมัติ
ลดขนาดไฟล์ภาพและเพิ่มคะแนนประสิทธิภาพ
ระบบนิเวศ React ที่ใหญ่
ใช้ไลบรารีและหาคนที่เขียนเป็นได้ง่าย
ใช้ Next.js ทำอะไรได้บ้าง
- เว็บบริษัทและเว็บเนื้อหาที่ต้องทำ SEO
- ร้านค้าออนไลน์ที่ต้องการหน้าโหลดเร็ว
- หน้าเว็บของแอปที่ต้องเรนเดอร์เนื้อหาให้เครื่องมือค้นหาอ่านได้
- เว็บที่ต้องผสมหน้าคงที่กับหน้าที่เปลี่ยนตามผู้ใช้
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นเว็บที่มีผู้ชมไม่มาก | 2 vCPU | 4 GB | NVMe 40 GB |
| แนะนำเว็บงานจริงที่มีผู้ชมต่อเนื่อง | 4 vCPU | 8 GB | NVMe 80 GB |
| ทราฟฟิกสูงหลาย Instance หลังตัวกระจายโหลด | 8 vCPU ขึ้นไป | 16 GB ขึ้นไป | NVMe 150 GB ขึ้นไป |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง Next.js บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Node.js รุ่น LTS ที่โปรเจกต์รองรับ
- PM2 หรือ systemd สำหรับรันเป็นบริการ
- Nginx พร้อมใบรับรอง SSL
- ฐานข้อมูลถ้าเว็บต้องเก็บข้อมูล
ทดสอบบน Ubuntu Server 24.04 LTS
- 1
ติดตั้ง Node.js และเครื่องมือ
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt -y install nodejs nginx sudo npm install -g pm2 - 2
ดึงโค้ดและบิลด์
cd /var/www sudo git clone [email protected]:team/website.git cd website npm ci npm run build - 3
ตั้งค่าตัวแปรสภาพแวดล้อม
เก็บค่าลับไว้ในไฟล์ที่จำกัดสิทธิ์และไม่ขึ้น Git ระวังไม่ใส่ค่าลับในตัวแปรที่ชื่อขึ้นต้นด้วย NEXT_PUBLIC เพราะจะถูกส่งไปยังเบราว์เซอร์
DATABASE_URL=postgres://user:[email protected]:5432/appdb NEXTAUTH_SECRET=PasteALongRandomStringHere NEXT_PUBLIC_SITE_URL=https://www.example.com - 4
รันเป็นบริการ
pm2 start npm --name website -- start pm2 startup systemd pm2 save - 5
ตั้ง Nginx เป็น Reverse Proxy
server { listen 443 ssl; server_name www.example.com; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; } location /_next/static { proxy_pass http://127.0.0.1:3000; proxy_cache_valid 200 60m; add_header Cache-Control "public, max-age=31536000, immutable"; } } - 6
ตั้งขั้นตอนอัปเดตแบบไม่หยุดบริการ
ให้ไปป์ไลน์ดึงโค้ด บิลด์ แล้วสั่งโหลดใหม่แบบไม่ตัดการเชื่อมต่อ ทำให้ผู้ใช้ไม่เห็นข้อผิดพลาดระหว่างอัปเดต
git pull && npm ci && npm run build && pm2 reload website
ระวังไม่ใส่ค่าลับในตัวแปรที่ขึ้นต้นด้วย NEXT_PUBLIC เพราะค่าเหล่านั้นถูกฝังลงในไฟล์ที่ส่งไปยังเบราว์เซอร์และใครก็อ่านได้
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 443 | TCP | HTTPS ผ่าน Nginx |
| 3000 | TCP | พอร์ตภายในของแอป |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- ให้แอปฟังเฉพาะภายในเครื่องและเปิดสู่ภายนอกผ่าน Nginx
- เก็บค่าลับในไฟล์ที่จำกัดสิทธิ์และไม่ขึ้น Git
- ตั้งส่วนหัวความปลอดภัยที่ Nginx
- อัปเดตแพ็กเกจตามรอบเพราะไลบรารีของ Node.js มีการแจ้งช่องโหว่บ่อย
ทำไมควรรัน Next.js บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
ค่าใช้จ่ายคงที่ตามสเปกเครื่อง ต่างจากบริการที่คิดตามปริมาณคำขอ
เชื่อมกับฐานข้อมูลใน Private Network ได้โดยตรงโดยไม่ต้องเปิดสู่อินเทอร์เน็ต
ผู้ชมในไทยได้ความเร็วที่ดีเพราะเซิร์ฟเวอร์อยู่ในประเทศ
คำถามที่พบบ่อยเกี่ยวกับ Next.js
Next.js ต่างจาก Nuxt อย่างไร
แนวคิดเดียวกันคือเรนเดอร์ฝั่งเซิร์ฟเวอร์เพื่อ SEO และความเร็ว ต่างที่ Next.js อยู่บน React ส่วน Nuxt อยู่บน Vue การเลือกจึงขึ้นกับว่าทีมถนัดเฟรมเวิร์กใดมากกว่า
รันบน Cloud Server เองคุ้มไหม
คุ้มเมื่อเว็บมีทราฟฟิกสม่ำเสมอ เพราะค่าเครื่องคงที่ขณะที่บริการโฮสต์คิดตามปริมาณคำขอ อีกทั้งเชื่อมกับฐานข้อมูลภายในได้โดยตรงและควบคุมสภาพแวดล้อมได้เต็มที่
ทำอย่างไรให้เว็บไม่ล่มตอน Deploy
ใช้คำสั่งโหลดใหม่ของตัวจัดการกระบวนการที่ทยอยเปลี่ยนโดยไม่ตัดการเชื่อมต่อ และควรบิลด์ให้เสร็จก่อนสั่งโหลดใหม่ เพื่อไม่ให้ผู้ใช้เจอข้อผิดพลาดระหว่างบิลด์
ทางเลือกอื่นที่คล้ายกับ Next.js
แอปอื่นในหมวด ภาษาโปรแกรมและ Framework
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Next.js ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด