Python (Flask / Django / FastAPI) และภาษาอื่นผ่าน Nginx Unit

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

เซิร์ฟเวอร์ web4 มี Python 3.12 พร้อม pip (ใช้คำสั่ง pip ได้เลย) และ venv รองรับทั้งแอปแบบ WSGI (Flask, Django) และ ASGI (FastAPI)

💡 แนะนำให้รันแอปบน subdomain แยก (วิธีสร้าง Subdomain)

เตรียมโปรเจกต์และ virtual environment

cd ~/domains/py.DOMAIN
mkdir py-app && cd py-app
python3 -m venv venv
source venv/bin/activate
pip install flask          # หรือ django / fastapi

ตัวอย่าง Flask (app.py)

from flask import Flask
app = Flask(__name__)      # <- ชื่อ callable คือ "app"

@app.route("/")
def hello():
    return "สวัสดีจาก Python บน web4!"

ตัวอย่าง FastAPI (ASGI)

from fastapi import FastAPI
app = FastAPI()            # <- callable "app"

@app.get("/")
def root():
    return {"message": "hello"}

ℹ️ สำหรับ Django ไฟล์ WSGI คือ PROJECT/wsgi.py และ callable คือ application

สร้าง Application

  1. Advanced Features › Nginx Unit › CREATE APPLICATION
  2. Type = Python, เลือก Version 3.12
  3. Working directory = โฟลเดอร์โปรเจกต์ เช่น /domains/py.DOMAIN/py-app/
  4. ระบุ ชื่อโมดูล (ชื่อไฟล์ไม่ต้องมี .py เช่น app) และ ชื่อ callable (เช่น app)
  5. ถ้าใช้ venv ให้ระบุพาธ venv (เช่น /home/USER/domains/py.DOMAIN/py-app/venv) ในช่อง home/virtualenv ที่แท็บ Advanced Options
  6. กด CREATE แล้วสร้าง Route ผูกกับ subdomain เช่นเดียวกับ Node.js

💡 อย่าลืมรีสตาร์ตแอปหลังแก้โค้ดหรือติดตั้งแพ็กเกจใหม่

⚠️ ถ้าขึ้น No module named ... ให้ตรวจว่าติดตั้งแพ็กเกจใน venv และระบุ venv ในการตั้งค่าแอปแล้ว

ภาษาอื่น ๆ (Ruby / Perl / Java)

Nginx Unit รองรับภาษาเพิ่มเติม โดยขั้นตอนเหมือนกัน (CREATE APPLICATION → เลือก Type → Working directory → CREATE → CREATE ROUTE)

ภาษา เวอร์ชัน รูปแบบแอป
Ruby 2.5 แอป Rack (ไฟล์ config.ru)
Perl 5 แอป PSGI (ไฟล์ .psgi)
Java 17 ไฟล์ .war — ระบุพาธในช่อง Webapp

ℹ️ PHP ไม่ได้รันผ่าน Nginx Unit — เว็บ PHP ทำงานแบบปกติใน public_html