Node.js: รันแอปผ่าน Nginx Unit

คู่มือ อัปเดต 25/10/2026

เซิร์ฟเวอร์ web4 มี Node.js 24 และ npm 11 พร้อมใช้งาน แอป Node.js จะรันและรับ request ผ่าน Nginx Unit ซึ่งจัดการผ่านเมนู Advanced Features › Nginx Unit

หน้า Nginx Unit — รายการแอปพลิเคชัน

หน้านี้มี 2 แท็บ

  • Applications — รายการแอปที่สร้างไว้ (ชื่อ, ประเภท, โฟลเดอร์ที่ผูกไว้)
  • Routes — กำหนดว่าโดเมน/พาธใดจะส่ง request ไปยังแอปใด

⚠️ แนะนำ: ใช้ Subdomain สำหรับแอป

ถ้าสร้าง Route ที่พาธ / ของโดเมนหลัก แอปจะ รับ request ทั้งเว็บไซต์แทน รวมถึงหน้าเว็บ PHP / WordPress เดิมด้วย จึงแนะนำให้สร้าง subdomain แยก เช่น api.DOMAIN หรือ app.DOMAIN (วิธีสร้าง Subdomain) แล้วผูกแอปกับ subdomain นั้น

เตรียมไฟล์แอป

  1. วางโค้ดในโฟลเดอร์ใต้ domains/ เช่น ~/domains/api.DOMAIN/node-app/ (อัปโหลดผ่าน File Manager หรือ git clone ตามคู่มือ Git)
  2. ติดตั้ง dependency ในโฟลเดอร์โปรเจกต์
cd ~/domains/api.DOMAIN/node-app
npm install

ตัวอย่างแอปอย่างง่าย (app.js)

const express = require('express');
const app = express();

app.get('/', (req, res) => res.send('สวัสดีจาก web4!'));

// แอปรับ request ผ่าน Nginx Unit (unit-http) ไม่ต้องเปิดพอร์ตเอง
app.listen(process.env.PORT || 3000);

💡 แอปทำงานผ่าน Nginx Unit (แพ็กเกจ unit-http) — แนะนำให้เลือก Template ของ Node.js ในหน้าสร้างแอป (ช่อง Apply Template) ระบบจะตั้งค่าส่วนนี้ให้ ไม่ต้องรัน node app.js ค้างไว้เองใน Terminal

สร้าง Application

  1. ที่หน้า Nginx Unit กด CREATE APPLICATION
  2. กรอกข้อมูล
    • Name — ชื่อแอป เช่น node
    • Type — เลือก Node.js และที่ Apply Template เลือกเทมเพลต Node
    • Version — เลือกเวอร์ชัน Node.js
    • Working directory — เลือกโฟลเดอร์แอป เช่น /domains/api.DOMAIN/node-app/ (คลิกเลือกจากรายการโฟลเดอร์ได้)
    • ระบุไฟล์เริ่มต้นของแอป (เช่น app.js) ตามช่องที่แบบฟอร์มแสดง
  3. กด CREATE

ฟอร์ม Create a new Application

ภาพตัวอย่างเป็นฟอร์มเมื่อเลือก Type อื่น — ช่องในส่วน Application Options จะเปลี่ยนไปตามชนิดแอปที่เลือก

สร้าง Route และรีสตาร์ตแอป

  1. กด CREATE ROUTE แล้วผูก subdomain (เช่น api.DOMAIN) กับแอปที่สร้างไว้
  2. ทดสอบเปิด https://api.DOMAIN/
  3. เมื่อแก้โค้ดหรือ git pull แล้ว ให้ รีสตาร์ตแอป — คลิกชื่อแอปเพื่อเปิดหน้า Modify App (หรือเมนู ⋯ ท้ายแถว) แล้วกด MODIFY เพื่อบันทึกและโหลดแอปใหม่

หน้า Modify App

หน้า Modify App มีแท็บ Application / Configuration / Advanced สำหรับแก้ไขค่าต่าง ๆ ภายหลัง

ปัญหาที่พบบ่อย

  • เปิดเว็บแล้วกลายเป็นหน้าแอปแทนเว็บเดิม — น่าจะสร้าง Route ที่ / ของโดเมนหลัก ให้ลบ Route นั้นในแท็บ Routes แล้วย้ายแอปไปใช้ subdomain
  • แก้โค้ดแล้วเว็บไม่เปลี่ยน — ต้องรีสตาร์ตแอปทุกครั้งหลังแก้โค้ดหรือ git pull
  • Module not found — ตรวจว่ารัน npm install ในโฟลเดอร์โปรเจกต์แล้ว