โลโก้ Django
อันดับ 15 ใน Top 100 ภาษาโปรแกรมและ FrameworkBSD 3-Clause (โอเพนซอร์ส)

Django คืออะไร และวิธี Deploy ขึ้น Cloud Server

Django คือเฟรมเวิร์กเว็บของภาษา Python ที่มาพร้อมทุกอย่างที่ระบบงานต้องใช้ ตั้งแต่ ORM ระบบผู้ใช้ ไปจนถึงหน้าจัดการข้อมูลที่สร้างให้อัตโนมัติ เหมาะกับระบบภายในองค์กรที่ต้องขึ้นเร็ว

ติดตั้งบนเซิร์ฟเวอร์เองได้
ได้
สเปกเริ่มต้นที่แนะนำ
2 vCPU · RAM 4 GB
ไลเซนส์
BSD 3-Clause (โอเพนซอร์ส)
เว็บทางการ
เปิดเว็บไซต์
สร้าง Cloud Server เดี๋ยวนี้
  • ISO/IEC 27001
  • ISO 22301
  • ISO 20000-1
  • CSA-STAR

Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย

Django คืออะไร

จุดขายของ Django คือมีทุกอย่างมาให้ในกล่องเดียว โดยเฉพาะหน้าจัดการข้อมูลที่สร้างจากโครงสร้างฐานข้อมูลอัตโนมัติ ซึ่งทำให้ระบบภายในองค์กรพร้อมใช้งานได้ภายในไม่กี่วัน

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

ในการนำขึ้น Production ต้องมีตัวรันแอปอย่าง Gunicorn อยู่หลัง Nginx และต้องรวบรวมไฟล์ Static ไปให้เว็บเซิร์ฟเวอร์เสิร์ฟ ซึ่งเป็นสองจุดที่ทีมมือใหม่มักตั้งค่าไม่ครบ

แผนผังการวางระบบ Django บน Cloud Server หนึ่งเครื่องที่ Data Center ในประเทศไทย ผู้ใช้เข้าถึงผ่านไฟร์วอลล์ที่เปิดเฉพาะพอร์ต 443, 80, 8000 ตัว Django และข้อมูลอยู่บนเครื่องเดียวกัน เริ่มต้นที่ 2 vCPU แรม 4 GB และมีสำเนาสำรองเขียนออกไปเก็บอีกไซต์หนึ่ง
Django ทำงานบน Cloud Server เครื่องเดียวได้ครบ เปิดเฉพาะพอร์ตที่จำเป็น ข้อมูลและสำเนาสำรองอยู่ใน Data Center ในประเทศไทย

ความสามารถเด่นของ Django

หน้าจัดการข้อมูลอัตโนมัติ

ได้หลังบ้านที่ใช้งานได้จริงทันทีจากโครงสร้างข้อมูลที่ประกาศไว้

ORM และระบบย้ายโครงสร้างฐานข้อมูล

จัดการฐานข้อมูลด้วยโค้ดและติดตามการเปลี่ยนแปลงเป็นเวอร์ชันได้

ความปลอดภัยพื้นฐานมาให้

ป้องกันช่องโหว่เว็บที่พบบ่อยตั้งแต่ค่าเริ่มต้น

เหมาะกับงานข้อมูลและ AI

อยู่ในระบบนิเวศ Python จึงต่อกับไลบรารีวิเคราะห์ข้อมูลได้ตรง

รองรับระบบขนาดใหญ่

มีเว็บระดับโลกจำนวนมากที่รันบน Django ในงาน Production

ใช้ Django ทำอะไรได้บ้าง

  • ระบบภายในองค์กรที่ต้องมีหลังบ้านจัดการข้อมูลเร็ว
  • เว็บแอปที่ต้องเชื่อมกับงานวิเคราะห์ข้อมูลหรือโมเดล AI
  • API สำหรับแอปมือถือด้วย Django REST Framework
  • ระบบที่มีสิทธิ์ผู้ใช้หลายระดับและต้องตรวจสอบย้อนหลัง

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

แผนภาพเทียบสเปก Cloud Server สำหรับ Django 3 ระดับ เริ่มจาก 2 vCPU แรม 4 GB ดิสก์ NVMe 40 GB ไปจนถึง 8 vCPU ขึ้นไป แรม 16 GB ขึ้นไป ดิสก์ NVMe 200 GB ขึ้นไป โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
เริ่มต้นระบบภายในหรือแอปเดียวที่ทราฟฟิกไม่สูง2 vCPU4 GBNVMe 40 GB
แนะนำProduction ที่มีผู้ใช้ต่อเนื่องพร้อมงานเบื้องหลัง4 vCPU8 GBNVMe 100 GB
ทราฟฟิกสูงแยกฐานข้อมูลและตัวประมวลผลงานเบื้องหลังออกไป8 vCPU ขึ้นไป16 GB ขึ้นไปNVMe 200 GB ขึ้นไป

ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ

วิธีติดตั้ง Django บน Cloud Server ของ THAI DATA CLOUD

ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server

สิ่งที่ต้องเตรียม

  • Python 3.11 ขึ้นไป
  • PostgreSQL (แนะนำ) หรือ MySQL
  • Gunicorn หรือ uWSGI สำหรับรันแอป
  • Nginx สำหรับ Reverse Proxy และเสิร์ฟไฟล์ Static

ทดสอบบน Ubuntu Server 24.04 LTS

  1. 1

    ติดตั้งบริการพื้นฐาน

    sudo apt update
    sudo apt -y install python3-venv python3-pip nginx postgresql libpq-dev git
  2. 2

    สร้างฐานข้อมูลและผู้ใช้

    sudo -u postgres psql -c "CREATE DATABASE appdb;"
    sudo -u postgres psql -c "CREATE USER appuser WITH PASSWORD 'ChangeThisStrongPassword';"
    sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE appdb TO appuser;"
  3. 3

    เตรียมสภาพแวดล้อมและติดตั้ง Dependency

    cd /var/www
    sudo git clone <repo-url> app && cd app
    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt gunicorn psycopg2-binary
  4. 4

    ตั้งค่าสำหรับ Production

    ปิดโหมดดีบัก ระบุโดเมนที่อนุญาต และตั้งค่าฐานข้อมูลผ่านตัวแปรสภาพแวดล้อม

    DEBUG = False
    ALLOWED_HOSTS = ['app.example.com']
    SECURE_SSL_REDIRECT = True
    SESSION_COOKIE_SECURE = True
    CSRF_COOKIE_SECURE = True
  5. 5

    รัน Migration และรวบรวมไฟล์ Static

    ขั้นตอนรวบรวมไฟล์ Static คือจุดที่มักถูกลืม ทำให้หน้าเว็บขึ้นแต่ไม่มีสไตล์และรูปภาพ

    python manage.py migrate
    python manage.py collectstatic --noinput
    python manage.py createsuperuser
  6. 6

    ตั้ง Gunicorn เป็นบริการ

    [Unit]
    Description=Gunicorn for Django app
    After=network.target
    
    [Service]
    User=www-data
    WorkingDirectory=/var/www/app
    ExecStart=/var/www/app/venv/bin/gunicorn --workers 4 --bind 127.0.0.1:8000 project.wsgi:application
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
  7. 7

    ตั้ง Nginx ให้ Proxy และเสิร์ฟไฟล์ Static

    server {
      listen 443 ssl;
      server_name app.example.com;
    
      location /static/ { alias /var/www/app/staticfiles/; }
      location /media/  { alias /var/www/app/media/; }
    
      location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }
    }

ตั้งจำนวน worker ของ Gunicorn ราวสองเท่าของจำนวนคอร์บวกหนึ่งเป็นจุดเริ่ม แล้วปรับตามการใช้หน่วยความจำจริงของแอป

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

พอร์ตโปรโตคอลใช้ทำอะไร
443TCPHTTPS ผ่าน Nginx
80TCPHTTP และการต่ออายุใบรับรอง
8000TCPพอร์ตภายในของ Gunicorn (ไม่เปิดสู่อินเทอร์เน็ต)
5432TCPPostgreSQL (เปิดเฉพาะภายใน)

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

  • ตั้ง DEBUG เป็น False และระบุ ALLOWED_HOSTS ให้ชัดเจน
  • เก็บ SECRET_KEY และรหัสผ่านฐานข้อมูลในตัวแปรสภาพแวดล้อม ไม่ฝังในโค้ด
  • บังคับ HTTPS และตั้งคุกกี้ให้ส่งผ่านการเชื่อมต่อที่เข้ารหัสเท่านั้น
  • จำกัดไอพีที่เข้าถึงหน้าจัดการข้อมูลได้ เพราะเป็นประตูสู่ข้อมูลทั้งระบบ
  • อัปเดต Django ตามรอบเพราะทีมพัฒนาออกแพตช์ความปลอดภัยสม่ำเสมอ

ทำไมควรรัน Django บน Cloud Server ของ THAI DATA CLOUD

Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง

แอป Python ต้องรันเป็นบริการตลอดเวลา ซึ่งต้องใช้ Cloud Server ที่ควบคุมกระบวนการเองได้

ต่อกับ PostgreSQL บนเครื่องอื่นในวง Private Network ในไทยได้ทั้งเร็วและปลอดภัย

ต่อยอดไปงานวิเคราะห์ข้อมูลหรือ AI บน GPU Server ได้ เพราะอยู่ในระบบนิเวศ Python เดียวกัน

คำถามที่พบบ่อยเกี่ยวกับ Django

ทำไมหน้าเว็บขึ้นแต่ไม่มีสไตล์และรูป

เพราะยังไม่ได้รวบรวมไฟล์ Static หรือ Nginx ยังไม่ได้ตั้งให้เสิร์ฟโฟลเดอร์นั้น ให้รันคำสั่ง collectstatic แล้วตรวจเส้นทางในไฟล์ตั้งค่าของ Nginx ให้ตรงกับโฟลเดอร์จริง

Django กับ Laravel เลือกอะไรดี

ถ้าทีมถนัด Python และงานต่อยอดไปทางข้อมูลหรือ AI ให้เลือก Django ถ้าทีมถนัด PHP และต้องการหาคนดูแลต่อในไทยง่ายที่สุด Laravel มีชุมชนใหญ่กว่าในตลาดแรงงานไทย

ใช้ Gunicorn หรือ uWSGI ดี

ทั้งคู่ใช้งานใน Production ได้ Gunicorn ตั้งค่าง่ายกว่าและเป็นตัวเลือกเริ่มต้นของหลายทีม ส่วน uWSGI ปรับแต่งได้ละเอียดกว่าแต่ซับซ้อนกว่า สำหรับงานทั่วไป Gunicorn เพียงพอ

ให้เราติดตั้ง Django ให้ฟรี บน Cloud Server ในไทย

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