Triển khai ứng dụng Python trên CloudPanel là bước quan trọng để đưa dự án của bạn vào môi trường thực tế, giúp tận dụng hiệu quả tài nguyên và đảm bảo hiệu suất tối ưu. Với CloudPanel, quy trình triển khai trở nên đơn giản và dễ quản lý, phù hợp cho cả những người mới bắt đầu và các nhà phát triển có kinh nghiệm.
Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách triển khai ứng dụng Python trên CloudPanel một cách chi tiết, giúp bạn nhanh chóng và dễ dàng đưa ứng dụng của mình lên môi trường thực tế.
1. Khởi tạo site
Ở đây ta sẽ thấy giao diện hiển thị nhiều tùy chọn, ta chọn Create a Python Site
2. Cấu hình cơ bản và triển khai ứng dụng
Giao diện quản lý của site
Ở đây, ta có thể thay đổi mật khẩu, đổi port ứng dụng (mặc định là 3000), đổi root directory, khởi tạo database, cấu hình ssl,…
Ta chú ý đến mục Root Directory để lát nữa upload dữ liệu lên cho đúng.
Khởi tạo database
Ta chuyển qua tab Database để khởi tạo 1 database rỗng cho site. Trường hợp site của bạn là site tĩnh, không dùng đến database thì có thể bỏ qua bước này.
Upload source code
Ta chuyển qua tab File Manager, di chuyển đến đúng thư mục Root Directory đã cấu hình trước đó và tiến hành upload source code của mình lên.
Triển khai ứng dụng
cd
python manage.py runserver
để khởi chạy ứng dụng, thì bạn cũng làm tương tự trên VPS để chạy thử:netstat
để kiểm tra lại xem ứng dụng đã thực sự khởi chạy chưa3. Cấu hình uwsgi để ứng dụng tự khởi chạy
Thay đổi cấu hình Vhost
server_name
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
{{ssl_certificate_key}}
{{ssl_certificate}}
server_name www.domain.com;
{{root}}
{{nginx_access_log}}
{{nginx_error_log}}
if ($scheme != "https") {
rewrite ^ https://$host$uri permanent;
}
location ~ /.well-known {
auth_basic off;
allow all;
}
{{settings}}
index index.html;
location / {
include uwsgi_params;
uwsgi_read_timeout 3600;
#uwsgi_pass unix:///run/uwsgi/app/weblate/socket;
uwsgi_pass 127.0.0.1:{{app_port}};
}
#location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf)$ {
# add_header Access-Control-Allow-Origin "*";
# expires max;
# access_log on;
#}
if (-f $request_filename) {
break;
}
}
Cấu hình uwsgi
[uwsgi]
plugins = python3
master = true
protocol = uwsgi
socket = 127.0.0.1:4000
chdir = /home/papy/htdocs/python.pavietnam.vn
wsgi-file = /home/papy/htdocs/python.pavietnam.vn/file_reader/wsgi.py
#virtualenv = /home/site-user/htdocs/python-project
# Needed for OAuth/OpenID
buffer-size = 8192
# Reload when consuming too much of memory
reload-on-rss = 250
# Increase number of workers for heavily loaded sites
workers = 4
# Enable threads for Sentry error submission
enable-threads = true
# Child processes do not need file descriptors
close-on-exec = true
# Avoid default 0000 umask
umask = 0022
# Run as weblate user
uid = <user_name>
gid = <group_name>
# Enable harakiri mode (kill requests after some time)
# harakiri = 3600
# harakiri-verbose = true
# Enable uWSGI stats server
# stats = :1717
# stats-http = true
# Do not log some errors caused by client disconnects
ignore-sigpipe = true
ignore-write-errors = true
disable-write-exception = true
python app.py
là ứng dụng chạy được, thì ta sẽ cấu hình cho wsgi-file trỏ đến file app.py này.systemctl restart uwsgi
4. Kết luận
========================================================================================
P.A Việt Nam cung cấp đa dạng các cấu hình Máy Chủ Ảo và Máy Chủ Riêng
Cloud Server
Cloud Server Pro
Máy Chủ Riêng
Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/