1. เชื่อมต่อกับเซิร์ฟเวอร์
ใช้ SSH เพื่อเชื่อมต่อกับเซิร์ฟเวอร์:
ssh root@<server-ip>
2. ดูข้อมูลเข้าสู่ระบบ
มีการสร้างผู้ใช้ชื่อ fastapi โดยเฉพาะสำหรับจัดการแอปพลิเคชันของคุณ
คุณสามารถดูข้อมูลเข้าสู่ระบบได้ในไฟล์นี้: /root/.fastapi-creds
หากต้องการดู ให้รันคำสั่ง:
cat /root/.fastapi-creds
หากต้องการเปลี่ยนรหัสผ่าน ให้ใช้:
passwd fastapi
3. สลับไปยัง App User
สลับไปยังบัญชีผู้ใช้ fastapi เพื่อจัดการแอปของคุณ:
su - flask
บัญชีนี้จัดเก็บโปรเจกต์ FastAPI และ environment ของคุณไว้
4. Project Structure
โครงสร้างไดเรกทอรีเริ่มต้น:
/home/fastapi/fastapi_app/
├── main.py → Your main FastAPI application file
├── venv/ → Virtual environment
└── __pycache__/ → Compiled Python files (auto-generated)
5. จัดการแอปพลิเคชัน
ไปยังไดเรกทอรีของแอปพลิเคชัน:
cd ~/fastapi_app
เปิดใช้งาน virtual environment:
source venv/bin/activate
แก้ไขไฟล์หลักของแอป:
nano main.py
รีสตาร์ทเซอร์วิส FastAPI เพื่อให้การเปลี่ยนแปลงมีผล:
sudo systemctl restart uvicorn-fastapi
6. Viewing Logs
ตรวจสอบ log ของ Uvicorn และ Nginx ได้ดังนี้:
- Uvicorn logs:
/var/log/uvicorn/ - Nginx error log:
/var/log/nginx/error.log - Nginx access log:
/var/log/nginx/access.log
To view them:
sudo tail -f /var/log/uvicorn/*
7. เข้าถึง API ของคุณ
เมื่อเซอร์วิสทำงานแล้ว แอป FastAPI จะพร้อมใช้งานในเบราว์เซอร์ที่: http://<server-ip>
Nginx จะส่งต่อคำขอ HTTP ไปยัง Uvicorn socket ที่รันแอป FastAPI ของคุณโดยอัตโนมัติ
8. เปลี่ยน Domain หรือ Port
หากต้องการอัปเดต server name, port หรือ domain:
- แก้ไขไฟล์ config ของ Nginx site:
sudo nano /etc/nginx/sites-available/uvicorn-fastapi - Test configuration:
sudo nginx -t - Reload Nginx:
sudo systemctl restart nginx
9. Uvicorn Service
แอป FastAPI ทำงานผ่านเซอร์วิส systemd ที่ชื่อว่า uvicorn-fastapi
It uses /home/fastapi/fastapi_app/main:app เป็น entry point ของแอปพลิเคชัน และรีสตาร์ทอัตโนมัติเมื่อเกิดข้อผิดพลาด
จัดการเซอร์วิส:
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