ฟาสต์เอพี

เฟรมเวิร์กเว็บ Python ที่ทันสมัยและมีประสิทธิภาพสูง สำหรับสร้าง API พร้อมการระบุประเภทข้อมูล (type hints)

1. เชื่อมต่อกับเซิร์ฟเวอร์ของคุณ

ใช้ SSH เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ของคุณ:

ssh root@<server-ip>

2. ป้อนข้อมูลประจำตัวสำหรับการเข้าสู่ระบบ

ได้มีการสร้างผู้ใช้เฉพาะชื่อ fastapi เพื่อจัดการแอปพลิเคชันของคุณ

คุณสามารถค้นหาข้อมูลการเข้าสู่ระบบได้ในไฟล์นี้: /root/.fastapi-creds

หากต้องการดู ให้เรียกใช้คำสั่ง:

cat /root/.fastapi-creds

หากต้องการเปลี่ยนรหัสผ่าน โปรดใช้:

passwd fastapi

3. เปลี่ยนไปใช้บัญชีผู้ใช้แอป

เปลี่ยนไปใช้บัญชีผู้ใช้ fastapi เพื่อจัดการแอปของคุณ:

su - flask

บัญชีนี้มีโปรเจ็กต์ FastAPI และสภาพแวดล้อมของคุณอยู่

4. โครงสร้างโครงการ

นี่คือโครงสร้างไดเร็กทอรีเริ่มต้น:

/home/fastapi/fastapi_app/
├── main.py          → Your main FastAPI application file
├── venv/            → Virtual environment
└── __pycache__/     → Compiled Python files (auto-generated)

5. การจัดการแอปพลิเคชันของคุณ

ไปยังไดเร็กทอรีของแอปพลิเคชัน:

cd ~/fastapi_app

เปิดใช้งานสภาพแวดล้อมเสมือนจริง:

source venv/bin/activate

แก้ไขไฟล์แอปพลิเคชันหลัก:

nano main.py

โปรดรีสตาร์ทบริการ FastAPI เพื่อให้การเปลี่ยนแปลงมีผล:

sudo systemctl restart uvicorn-fastapi

6. การดูบันทึก

คุณสามารถตรวจสอบบันทึกการทำงานของ Uvicorn และ Nginx ได้ดังนี้:

  • บันทึกของ Uvicorn: /var/log/uvicorn/
  • บันทึกข้อผิดพลาดของ Nginx: /var/log/nginx/error.log
  • บันทึกการเข้าถึง Nginx: /var/log/nginx/access.log

หากต้องการชมภาพเหล่านั้น:

sudo tail -f /var/log/uvicorn/*

7. การเข้าถึง API ของคุณ

เมื่อระบบทำงานแล้ว แอป FastAPI ของคุณจะพร้อมใช้งานในเบราว์เซอร์ของคุณที่: http://<server-ip>

Nginx จะส่งต่อคำขอ HTTP ไปยังซ็อกเก็ต Uvicorn ที่รันแอป FastAPI ของคุณโดยอัตโนมัติ

8. การเปลี่ยนโดเมนหรือพอร์ต

หากคุณต้องการอัปเดตชื่อเซิร์ฟเวอร์ พอร์ต หรือโดเมน:

  1. แก้ไขการตั้งค่าเว็บไซต์ Nginx: sudo nano /etc/nginx/sites-available/uvicorn-fastapi
  2. การตั้งค่าการทดสอบ: sudo nginx -t
  3. รีโหลด Nginx: sudo systemctl restart nginx

9. บริการยูวิคอร์น

แอป FastAPI ทำงานผ่านบริการ systemd ที่ชื่อว่า uvicorn-fastapi

มันใช้ /home/fastapi/fastapi_app/main:app ทำหน้าที่เป็นจุดเริ่มต้นของแอปพลิเคชัน และจะเริ่มต้นใหม่โดยอัตโนมัติเมื่อเกิดข้อผิดพลาด

วิธีจัดการบริการ:

systemctl status uvicorn-fastapi
systemctl restart uvicorn-fastapi

เพื่อแก้ไขข้อมูลบริการ:

sudo vim /etc/systemd/system/uvicorn-fastapi.service
sudo systemctl daemon-reload
sudo systemctl restart uvicorn-fastapi
sudo systemctl status uvicorn-fastapi

10. เปิดใช้งาน HTTPS (ไม่บังคับ)

ใช้ Certbot เพื่อเปิดใช้งาน HTTPS

รายละเอียดการสมัคร