Hướng dẫn triển khai ứng dụng Python trên CloudPanel

  • Monday 26/08/2024

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

Ở giao diện CloudPanel, ta di chuyển đến tab Sites, và click vào + ADD SITE
python-cloudpanel1

 

Ở đây ta sẽ thấy giao diện hiển thị nhiều tùy chọn, ta chọn Create a Python Site

python-cloudpanel2
Nhập các thông tin cần thiết, sau đó chọn Create
python-cloudpanel3
Domain name: nhập tên miền của ứng dụng/website
Python Version: chọn phiên bản thích hợp với ứng dụng/website của bạn.
App Port: port mà ứng dụng của bạn chạy trong localhost
Site UserSite User Password: đặt tên user và mật khẩu tùy ý. Ta sẽ dùng tài khoản này để truy cập SSH vào server và triển khai ứng dụng.
Site sau khi khởi tạo sẽ hiển thị ở giao diện Sites, ta click vào Manage để quản lý và cấu hình.
python-cloudpanel4

2. Cấu hình cơ bản và triển khai ứng dụng

Giao diện quản lý của site

Khi đã truy cập vào giao diện quản lý của site, ta sẽ thấy tương tự như sau:
python-cloudpane5

Ở đâ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

Giả sử, ta có ứng dụng web chạy ở port 4000 trên localhost có giao diện như sau:
python-cloudpanel6
python-cloudpanel7
Để triển khai ứng dụng, ta truy cập vào server thông qua phương thức SSH với thông tin tài khoản đã tạo ở bước 1.
Nếu chưa từng truy cập SSH, bạn có thể tham khảo hướng dẫn ở đây.
Sau khi truy cập SSH, di chuyển đến Root Directory bằng lệnh cd
Tiến hành chạy thử ứng dụng giống như cách đã làm ở locahost. Ví dụ như ở localhost bạn dùng lệnh 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ử:
python-cloudpanel8
Để đảm bảo, ta mở thêm 1 tab SSH nữa và dùng lệnh netstat để kiểm tra lại xem ứng dụng đã thực sự khởi chạy chưa
python-cloudpanel9
Như vậy là ứng dụng đã chạy được trên server rồi.

3. Cấu hình uwsgi để ứng dụng tự khởi chạy

Ở bước trên, ta đã cho ứng dụng chạy được trên server. Tuy nhiên nếu tắt process của lệnh runserver thì ứng dụng cũng tắt theo. Do đó ta cần phải cấu hình uwsgi để luôn giữ process runserver này hoạt động, kể cả khi server bị reboot thì ứng dụng của chúng ta cũng tự đồng khởi chạy lại.
Các bước tiến hành như sau:

Thay đổi cấu hình Vhost

Trên giao diện quản lý site ở CloudPanel, ta chuyển đến tab Vhost, sau đó thay cấu hình cũ bằng cấu hình mới bên dưới, rồi lưu lại. Nhớ thay domain của bạn vào mục 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;
  }
}

 

python-cloudpanel10

Cấu hình uwsgi

Ở bước này, ta phải truy cập server với quyền root hoặc user nào có quyền sudo, di chuyển đến thư mục /etc/uwsgi/apps-enabled/ và tạo file <domain>.uwsgi.ini với cấu trúc sau:
[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
**Lưu ý các thông số sau:
socket: ứng dụng chạy port nào thì cấu hình port đó. Ví dụ: 127.0.0.1:4000
chdir: đường dẫn đến thư mục chứa code của bạn. Nếu trước đó không có thay đổi gì thì mục này ta có thể điền thông số Root Directory vào.
wsgi-file: nếu ứng dụng của bạn chạy Django, thông thường lúc build ứng dụng thì file wsgi.py này sẽ tự được khởi tạo, ta chỉ cần trỏ đến file này là được.
Trường hợp ứng dụng của bạn build bằng framework khác, và chạy bằng file khác, ví dụ chạy lệnh 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.
virtualenv: nếu ứng dụng chạy với virtualenv thì bỏ dấu # ở dòng này và thay bằng đường dẫn đến virtualenv.
uidgid: thay bằng user name và group name đã tạo ở bước 1. Nếu không có cấu hình gì đặc biệt thì cả 2 mục này ta có thể điền username luôn.
(nếu tài khoản của bạn không có quyển truy cập thư mục /etc/uwsgi/apps-enabled/ và tạo file, hãy liên hệ người quản lý server để được hỗ trợ)
Sau khi tạo file trên, ta tiến hành restart uwsgi để chạy cấu hình mới, dùng lệnh
systemctl restart uwsgi
Kiểm tra lại một lần nữa, nếu lần này thấy port của ứng dụng được chạy bởi uwsgi như hình dưới là đã cấu hình đúng rồi
python-cloudpanel11
Truy cập web và kiểm tra lại
python-cloudpanel12
python-cloudpanel13
Như vậy là ta đã hoàn tất việc triển khai 1 ứng dụng Python trên CloudPanel rồi.

4. Kết luận

Triển khai ứng dụng Python trên CloudPanel không chỉ giúp bạn quản lý tài nguyên hiệu quả mà còn đảm bảo ứng dụng của bạn hoạt động ổn định và an toàn. Với các bước hướng dẫn chi tiết trong bài viết này, bạn sẽ có thể triển khai thành công và duy trì hiệu suất hoạt động cho ứng dụng Python của mình. Việc sử dụng CloudPanel sẽ giúp bạn tối ưu hóa quy trình làm việc và chuẩn bị sẵn sàng cho sự phát triển và mở rộng trong tương lai.

========================================================================================

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/

Rate this post