โลโก้ Next.js
ภาษาโปรแกรมและ FrameworkMIT (โอเพนซอร์ส)

Next.js คืออะไร และวิธี Deploy บน Cloud Server

Next.js คือเฟรมเวิร์กสำหรับสร้างเว็บด้วย React ที่เรนเดอร์ฝั่งเซิร์ฟเวอร์ได้ ทำให้เว็บโหลดเร็วและทำ SEO ได้ดี ต่างจากเว็บที่เรนเดอร์ในเบราว์เซอร์อย่างเดียว

ติดตั้งบนเซิร์ฟเวอร์เองได้
ได้
สเปกเริ่มต้นที่แนะนำ
2 vCPU · RAM 4 GB
ไลเซนส์
MIT (โอเพนซอร์ส)
เว็บทางการ
เปิดเว็บไซต์
สร้าง Cloud Server เดี๋ยวนี้
  • 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 บน Cloud Server หนึ่งเครื่องที่ Data Center ในประเทศไทย ผู้ใช้เข้าถึงผ่านไฟร์วอลล์ที่เปิดเฉพาะพอร์ต 443, 3000 ตัว Next.js และข้อมูลอยู่บนเครื่องเดียวกัน เริ่มต้นที่ 2 vCPU แรม 4 GB และมีสำเนาสำรองเขียนออกไปเก็บอีกไซต์หนึ่ง
Next.js ทำงานบน Cloud Server เครื่องเดียวได้ครบ เปิดเฉพาะพอร์ตที่จำเป็น ข้อมูลและสำเนาสำรองอยู่ใน Data Center ในประเทศไทย

ความสามารถเด่นของ Next.js

เรนเดอร์ฝั่งเซิร์ฟเวอร์

ผู้ใช้เห็นเนื้อหาทันทีและเครื่องมือค้นหาอ่านได้ครบ

สร้างหน้าล่วงหน้าได้

หน้าที่ไม่เปลี่ยนบ่อยถูกสร้างไว้ก่อนจึงตอบเร็วมาก

เขียน API ในโปรเจกต์เดียวกัน

ไม่ต้องแยกโปรเจกต์หลังบ้านสำหรับงานที่ไม่ซับซ้อน

ปรับภาพให้เหมาะกับอุปกรณ์อัตโนมัติ

ลดขนาดไฟล์ภาพและเพิ่มคะแนนประสิทธิภาพ

ระบบนิเวศ React ที่ใหญ่

ใช้ไลบรารีและหาคนที่เขียนเป็นได้ง่าย

ใช้ Next.js ทำอะไรได้บ้าง

  • เว็บบริษัทและเว็บเนื้อหาที่ต้องทำ SEO
  • ร้านค้าออนไลน์ที่ต้องการหน้าโหลดเร็ว
  • หน้าเว็บของแอปที่ต้องเรนเดอร์เนื้อหาให้เครื่องมือค้นหาอ่านได้
  • เว็บที่ต้องผสมหน้าคงที่กับหน้าที่เปลี่ยนตามผู้ใช้

สเปก Cloud Server ที่แนะนำ

แผนภาพเทียบสเปก Cloud Server สำหรับ Next.js 3 ระดับ เริ่มจาก 2 vCPU แรม 4 GB ดิสก์ NVMe 40 GB ไปจนถึง 8 vCPU ขึ้นไป แรม 16 GB ขึ้นไป ดิสก์ NVMe 150 GB ขึ้นไป โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
เริ่มต้นเว็บที่มีผู้ชมไม่มาก2 vCPU4 GBNVMe 40 GB
แนะนำเว็บงานจริงที่มีผู้ชมต่อเนื่อง4 vCPU8 GBNVMe 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. 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. 2

    ดึงโค้ดและบิลด์

    cd /var/www
    sudo git clone [email protected]:team/website.git
    cd website
    npm ci
    npm run build
  3. 3

    ตั้งค่าตัวแปรสภาพแวดล้อม

    เก็บค่าลับไว้ในไฟล์ที่จำกัดสิทธิ์และไม่ขึ้น Git ระวังไม่ใส่ค่าลับในตัวแปรที่ชื่อขึ้นต้นด้วย NEXT_PUBLIC เพราะจะถูกส่งไปยังเบราว์เซอร์

    DATABASE_URL=postgres://user:[email protected]:5432/appdb
    NEXTAUTH_SECRET=PasteALongRandomStringHere
    NEXT_PUBLIC_SITE_URL=https://www.example.com
  4. 4

    รันเป็นบริการ

    pm2 start npm --name website -- start
    pm2 startup systemd
    pm2 save
  5. 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. 6

    ตั้งขั้นตอนอัปเดตแบบไม่หยุดบริการ

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

    git pull && npm ci && npm run build && pm2 reload website

ระวังไม่ใส่ค่าลับในตัวแปรที่ขึ้นต้นด้วย NEXT_PUBLIC เพราะค่าเหล่านั้นถูกฝังลงในไฟล์ที่ส่งไปยังเบราว์เซอร์และใครก็อ่านได้

พอร์ตที่ต้องเปิดบน Firewall

พอร์ตโปรโตคอลใช้ทำอะไร
443TCPHTTPS ผ่าน Nginx
3000TCPพอร์ตภายในของแอป

สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ

  • ให้แอปฟังเฉพาะภายในเครื่องและเปิดสู่ภายนอกผ่าน 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 ให้ฟรี บน Cloud Server ในไทย

แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด