1. Kết nối tới máy chủ
Dùng SSH để kết nối tới máy chủ của bạn:
ssh root@<server-ip>
2. Truy cập thông tin đăng nhập
Một tài khoản người dùng riêng tên fastapi đã được tạo để quản lý ứng dụng của bạn.
Bạn có thể tìm thông tin đăng nhập trong file sau: /root/.fastapi-creds
Để xem, chạy lệnh:
cat /root/.fastapi-creds
Nếu muốn đổi mật khẩu, dùng lệnh:
passwd fastapi
3. Chuyển sang Người Dùng Ứng Dụng
Chuyển sang tài khoản fastapi để quản lý ứng dụng:
su - flask
Tài khoản này chứa project và môi trường FastAPI của bạn.
4. Project Structure
Cấu trúc thư mục mặc định như sau:
/home/fastapi/fastapi_app/
├── main.py → Your main FastAPI application file
├── venv/ → Virtual environment
└── __pycache__/ → Compiled Python files (auto-generated)
5. Quản lý ứng dụng
Di chuyển vào thư mục ứng dụng:
cd ~/fastapi_app
Kích hoạt môi trường ảo:
source venv/bin/activate
Chỉnh sửa file app chính:
nano main.py
Khởi động lại dịch vụ FastAPI để áp dụng thay đổi:
sudo systemctl restart uvicorn-fastapi
6. Viewing Logs
Bạn có thể xem log của Uvicorn và Nginx như sau:
- Uvicorn logs:
/var/log/uvicorn/ - Log lỗi Nginx:
/var/log/nginx/error.log - Log truy cập Nginx:
/var/log/nginx/access.log
To view them:
sudo tail -f /var/log/uvicorn/*
7. Truy cập API của bạn
Sau khi dịch vụ đã chạy, ứng dụng FastAPI của bạn có thể truy cập qua trình duyệt tại: http://<server-ip>
Nginx tự động chuyển tiếp các yêu cầu HTTP đến socket Uvicorn đang chạy ứng dụng FastAPI.
8. Thay đổi domain hoặc cổng
Nếu bạn muốn cập nhật tên server, cổng hoặc domain:
- Chỉnh sửa cấu hình site Nginx:
sudo nano /etc/nginx/sites-available/uvicorn-fastapi - Test configuration:
sudo nginx -t - Reload Nginx:
sudo systemctl restart nginx
9. Uvicorn Service
Ứng dụng FastAPI chạy qua dịch vụ systemd có tên uvicorn-fastapi.
It uses /home/fastapi/fastapi_app/main:app là điểm vào của ứng dụng và tự động khởi động lại khi gặp lỗi.
Để quản lý dịch vụ:
systemctl status uvicorn-fastapi
systemctl restart uvicorn-fastapi
Để chỉnh sửa dịch vụ:
sudo vim /etc/systemd/system/uvicorn-fastapi.service
sudo systemctl daemon-reload
sudo systemctl restart uvicorn-fastapi
sudo systemctl status uvicorn-fastapi
10. Bật HTTPS (Tùy chọn)
Dùng Certbot để bật HTTPS.