Django คืออะไร และวิธี Deploy ขึ้น Cloud Server
Django คือเฟรมเวิร์กเว็บของภาษา Python ที่มาพร้อมทุกอย่างที่ระบบงานต้องใช้ ตั้งแต่ ORM ระบบผู้ใช้ ไปจนถึงหน้าจัดการข้อมูลที่สร้างให้อัตโนมัติ เหมาะกับระบบภายในองค์กรที่ต้องขึ้นเร็ว
- หมวดหมู่
- ภาษาโปรแกรมและ Framework
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 4 GB
- ไลเซนส์
- BSD 3-Clause (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
Django คืออะไร
จุดขายของ Django คือมีทุกอย่างมาให้ในกล่องเดียว โดยเฉพาะหน้าจัดการข้อมูลที่สร้างจากโครงสร้างฐานข้อมูลอัตโนมัติ ซึ่งทำให้ระบบภายในองค์กรพร้อมใช้งานได้ภายในไม่กี่วัน
Django ยังมาพร้อมกลไกป้องกันช่องโหว่พื้นฐานของเว็บ ทั้งการป้องกันการยิงฟอร์มข้ามเว็บ การกรองข้อมูลก่อนแสดงผล และการป้องกันการแทรกคำสั่งฐานข้อมูล ซึ่งช่วยลดความผิดพลาดของทีมได้มาก
ในการนำขึ้น Production ต้องมีตัวรันแอปอย่าง Gunicorn อยู่หลัง Nginx และต้องรวบรวมไฟล์ Static ไปให้เว็บเซิร์ฟเวอร์เสิร์ฟ ซึ่งเป็นสองจุดที่ทีมมือใหม่มักตั้งค่าไม่ครบ
ความสามารถเด่นของ Django
หน้าจัดการข้อมูลอัตโนมัติ
ได้หลังบ้านที่ใช้งานได้จริงทันทีจากโครงสร้างข้อมูลที่ประกาศไว้
ORM และระบบย้ายโครงสร้างฐานข้อมูล
จัดการฐานข้อมูลด้วยโค้ดและติดตามการเปลี่ยนแปลงเป็นเวอร์ชันได้
ความปลอดภัยพื้นฐานมาให้
ป้องกันช่องโหว่เว็บที่พบบ่อยตั้งแต่ค่าเริ่มต้น
เหมาะกับงานข้อมูลและ AI
อยู่ในระบบนิเวศ Python จึงต่อกับไลบรารีวิเคราะห์ข้อมูลได้ตรง
รองรับระบบขนาดใหญ่
มีเว็บระดับโลกจำนวนมากที่รันบน Django ในงาน Production
ใช้ Django ทำอะไรได้บ้าง
- ระบบภายในองค์กรที่ต้องมีหลังบ้านจัดการข้อมูลเร็ว
- เว็บแอปที่ต้องเชื่อมกับงานวิเคราะห์ข้อมูลหรือโมเดล AI
- API สำหรับแอปมือถือด้วย Django REST Framework
- ระบบที่มีสิทธิ์ผู้ใช้หลายระดับและต้องตรวจสอบย้อนหลัง
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นระบบภายในหรือแอปเดียวที่ทราฟฟิกไม่สูง | 2 vCPU | 4 GB | NVMe 40 GB |
| แนะนำProduction ที่มีผู้ใช้ต่อเนื่องพร้อมงานเบื้องหลัง | 4 vCPU | 8 GB | NVMe 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
ติดตั้งบริการพื้นฐาน
sudo apt update sudo apt -y install python3-venv python3-pip nginx postgresql libpq-dev git - 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
เตรียมสภาพแวดล้อมและติดตั้ง 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
ตั้งค่าสำหรับ Production
ปิดโหมดดีบัก ระบุโดเมนที่อนุญาต และตั้งค่าฐานข้อมูลผ่านตัวแปรสภาพแวดล้อม
DEBUG = False ALLOWED_HOSTS = ['app.example.com'] SECURE_SSL_REDIRECT = True SESSION_COOKIE_SECURE = True CSRF_COOKIE_SECURE = True - 5
รัน Migration และรวบรวมไฟล์ Static
ขั้นตอนรวบรวมไฟล์ Static คือจุดที่มักถูกลืม ทำให้หน้าเว็บขึ้นแต่ไม่มีสไตล์และรูปภาพ
python manage.py migrate python manage.py collectstatic --noinput python manage.py createsuperuser - 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
ตั้ง 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
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 443 | TCP | HTTPS ผ่าน Nginx |
| 80 | TCP | HTTP และการต่ออายุใบรับรอง |
| 8000 | TCP | พอร์ตภายในของ Gunicorn (ไม่เปิดสู่อินเทอร์เน็ต) |
| 5432 | TCP | PostgreSQL (เปิดเฉพาะภายใน) |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- ตั้ง 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
แอปอื่นในหมวด ภาษาโปรแกรมและ Framework
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Django ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด