Django là một framework web Python mã nguồn mở và miễn phí được sử dụng để phát triển các trang web và ứng dụng động. Nó được sử dụng để phát triển các ứng dụng Python phức tạp và dựa trên cơ sở dữ liệu.
Django tuân theo kiến trúc MVC (Model-View-Controller), cho phép các nhà phát triển viết ít mã hơn và tạo một trang web mới trong thời gian ngắn. Django có thể được cài đặt trên bất kỳ hệ điều hành nào chạy Python, bao gồm Windows, macOS, Linux/Unix và Solaris.
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt framework web Django trên máy chủ Debian 12. Bạn sẽ bắt đầu với Django bằng cách tạo dự án Django đầu tiên của mình bằng cách sử dụng PostgreSQL làm cơ sở dữ liệu mặc định, máy chủ Gunicorn WSGI và Nginx làm proxy ngược.
Bây giờ hãy cài đặt các gói phụ thuộc như môi trường ảo Python, trình quản lý gói pip, trình điều khiển PostgreSQL và libpq5, Nginx và Giám sát.
Nhập y để xác nhận và tiếp tục cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22283%22%3E%3C/svg%3E
Sau khi cài đặt các phụ thuộc, hãy chạy các lệnh sau để xác minh các dịch vụ PostgreSQL, Nginx và Giám sát và đảm bảo các dịch vụ đó đang chạy và được bật.
Kiểm tra dịch vụ PostgreSQL sử dụng lệnh bên dưới.
Nếu PostgreSQL đang chạy và được bật, bên dưới đầu ra bạn sẽ nhận được.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22187%22%3E%3C/svg%3E
Kiểm tra dịch vụ Nginx bằng lệnh bên dưới.
Nếu Nginx đang chạy và được bật, bên dưới là đầu ra bạn sẽ nhận được.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22286%22%3E%3C/svg%3E
Cuối cùng, hãy kiểm tra Supervisor bằng cách sử dụng bên dưới lệnh.
Bạn sẽ thấy Supervisor đang chạy và được bật.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22243%22%3E%3C/svg%3E
Đăng nhập vào người dùng của bạn thông qua lệnh bên dưới.
Bây giờ hãy tạo một thư mục dự án mới ~/testdjango và di chuyển vào đó.
Tiếp theo, hãy chạy lệnh sau để tạo một môi trường ảo Python mới có tên là venv trong thư mục dự án hiện tại.
Sau đó kích hoạt nó bằng lệnh bên dưới. Sau khi môi trường ảo được kích hoạt, dấu nhắc hiện tại của bạn sẽ có dạng (venv) bob@hostname:.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22560%22%20height=%22253%22%3E%3C/svg%3E
Trong môi trường ảo venv, hãy thực thi lệnh pip bên dưới để cài đặt nền tảng web Django. Thao tác này sẽ cài đặt Django trong môi trường ảo Python của bạn chứ không phải trên toàn hệ thống.
Bên dưới là quá trình cài đặt Django đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22250%22%3E%3C/svg%3E
Xác minh phiên bản Django của bạn sau khi quá trình cài đặt hoàn tất bằng lệnh django-admin bên dưới.
Đầu ra sau đây xác nhận Django 4.2.4 đã được cài đặt trong môi trường ảo venv thông qua Trình quản lý gói Python Pip.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22552%22%20height=%2292%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22253%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh sau để đăng nhập vào PostgreSQL shell.
Thực hiện các truy vấn sau để tạo cơ sở dữ liệu và người dùng mới cho dự án Django của bạn. Ví dụ sau sẽ tạo một cơ sở dữ liệu mới djangodb, người dùng django và mật khẩu p4ssw0rd.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22577%22%20height=%22238%22%3E%3C/svg%3E
Tiếp theo, chạy các truy vấn sau để xác minh danh sách cơ sở dữ liệu và người dùng trên PostgreSQL của bạn máy chủ.
Bạn sẽ thấy cơ sở dữ liệu djangodb và người dùng django đã được tạo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22376%22%3E%3C/svg%3E
Gõ quit để thoát khỏi máy chủ PostgreSQL.
Để tạo dự án Django mới, hãy chạy lệnh django-admin bên dưới. Trong trường hợp này, bạn sẽ tạo một dự án testapp mới trên thư mục làm việc hiện tại của mình.
Sau khi dự án được tạo, thư mục mới testapp sẽ được tạo trên thư mục làm việc của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22664%22%20height=%22211%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh sau để tạo một bí mật ngẫu nhiên cho dự án Django của bạn. Hãy chắc chắn sao chép đầu ra, vì bạn sẽ sử dụng nó để bảo mật cài đặt Django của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2263%22%3E%3C/svg%3E
Bây giờ hãy sử dụng trình soạn thảo ưa thích của bạn và mở testapp/settings.py tệp.
Ở đầu dòng, chèn cấu hình sau.
Chèn khóa bí mật của bạn vào SECRET_KEY tham số.
Nhập địa chỉ IP cục bộ và tên miền cục bộ của bạn vào tham số ALLOWED_HOSTS.
Thay đổi cấu hình cơ sở dữ liệu mặc định bằng các chi tiết máy chủ PostgreSQL như này:
Cuối cùng, thêm tham số STATIC_ROOT để xác định thư mục lưu trữ các tệp tĩnh.
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.
Nếu không có lỗi, hãy chạy lệnh sau để di chuyển cơ sở dữ liệu.
Nếu mọi việc diễn ra tốt đẹp, bạn sẽ thấy quá trình di chuyển cơ sở dữ liệu như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22737%22%20height=%22599%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh sau để tạo các tệp tĩnh cho dự án Django của bạn. Sau khi lệnh được thực thi, thư mục tĩnh mới sẽ được tạo và các tệp tĩnh sẽ được tạo vào đó.
Dưới đây là đầu ra khi tạo tệp tĩnh.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22621%22%20height=%22128%22%3E%3C/svg%3E
Nhập địa chỉ email và mật khẩu của bạn khi được nhắc.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22672%22%20height=%22183%22%3E%3C/svg%3E
Sau khi người dùng quản trị được tạo, hãy chạy lệnh bên dưới để chạy Django của bạn dự án.
Sau khi lệnh được thực thi, dự án Django của bạn sẽ được chạy trên địa chỉ IP cục bộ của bạn trên cổng 8080.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22719%22%20height=%22253%22%3E%3C/svg%3E
Bây giờ hãy mở trình duyệt web của bạn và truy cập địa chỉ IP của máy chủ theo sau là cổng 8080, http://192.168.10.15:8080/. Nếu cài đặt Django thành công, bạn sẽ thấy trang Django index.html mặc định như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22514%22%3E%3C/svg%3E
Bây giờ hãy truy cập vào trang quản trị Django của bạn qua đường dẫn URL /admin, http://192.168.10.15:8080/admin. Nhập tên người dùng và mật khẩu quản trị Django của bạn, sau đó nhấp vào Đăng nhập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22401%22%3E%3C/svg%3E
Bạn sẽ thấy một ví dụ về bảng điều khiển người dùng Django như thế này:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22225%22%3E%3C/svg%3E
Nhấn Ctrl+c để chấm dứt tiến trình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22229%22%3E%3C/svg%3E
Bây giờ hãy thực hiện lệnh sau để hủy kích hoạt môi trường ảo venv và quay lại người dùng gốc của bạn.
Chèn cấu hình sau và đảm bảo thay đổi thông tin chi tiết về tên ứng dụng, đường dẫn của dự án và người dùng bằng thông tin của bạn. Trong ví dụ này, bạn sẽ chạy dự án Django của mình dưới socket UNIX /home/bob/testdjango/testapp.sock.
Lưu và thoát tệp khi hoàn tất.
Cuối cùng, chạy lệnh sau để khởi động lại dịch vụ giám sát và áp dụng các thay đổi. Sau đó, hãy xác minh dịch vụ của người giám sát để đảm bảo rằng dịch vụ đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22258%22%3E%3C/svg%3E
Bạn sẽ thấy ứng dụng testapp đang chạy trên PID 2577.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22639%22%20height=%22115%22%3E%3C/svg%3E
Cuối cùng, hãy kiểm tra ứng dụng Django của bạn thông qua lệnh curl bên dưới.
Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ thấy mã nguồn của trang index.html trong dự án Django của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22314%22%3E%3C/svg%3E
Tạo cấu hình khối máy chủ Nginx mới /etc/nginx/sites-available/django bằng trình chỉnh sửa nano sau.
Chèn cấu hình sau và đảm bảo thay đổi tên miền trong server_name tham số.
Lưu và thoát tệp khi bạn hoàn tất.
Bây giờ hãy chạy lệnh sau để kích hoạt khối máy chủ /etc/nginx/sites-available/django, sau đó xác minh cú pháp Nginx để đảm bảo rằng bạn có cú pháp phù hợp.
Bạn sẽ nhận được cú pháp đầu ra là ok - thử nghiệm thành công khi bạn có cú pháp Nginx phù hợp.
Cuối cùng, khởi động lại dịch vụ Nginx của bạn bằng cách thực hiện lệnh sau và áp dụng các thay đổi bạn đã thực hiện.
Với lệnh này, dự án Django của bạn có thể truy cập được thông qua tên miền cục bộ.
Trên máy cục bộ của bạn, hãy chỉnh sửa tệp /etc/hosts cho Linux hoặc C:\Windows\System32\drivers\etc\hosts cho Windows. Sau đó, hãy định nghĩa địa chỉ IP máy chủ và tên miền của bạn như sau.
Lưu và thoát tệp khi hoàn tất.
Quay lại trình duyệt web và truy cập tên miền cục bộ của bạn, bạn sẽ thấy trang index.html mặc định của dự án Django.
Django tuân theo kiến trúc MVC (Model-View-Controller), cho phép các nhà phát triển viết ít mã hơn và tạo một trang web mới trong thời gian ngắn. Django có thể được cài đặt trên bất kỳ hệ điều hành nào chạy Python, bao gồm Windows, macOS, Linux/Unix và Solaris.
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt framework web Django trên máy chủ Debian 12. Bạn sẽ bắt đầu với Django bằng cách tạo dự án Django đầu tiên của mình bằng cách sử dụng PostgreSQL làm cơ sở dữ liệu mặc định, máy chủ Gunicorn WSGI và Nginx làm proxy ngược.
Điều kiện tiên quyết
Để bắt đầu, hãy đảm bảo bạn có những thứ sau:- Máy Debian 12.
- Người dùng không phải root có quyền quản trị viên sudo.
Cài đặt các phụ thuộc
Trong bước đầu tiên, bạn sẽ cài đặt các phụ thuộc gói cho cài đặt khung web Django của mình, bao gồm các gói sau:- Máy chủ PostgreSQL: Theo mặc định, Django sử dụng SQLite và ví dụ này sẽ chỉ cho bạn cách sử dụng PostgreSQL làm cơ sở dữ liệu cho dự án Django của mình.
- Giám sát: Đây là trình quản lý quy trình và bạn sẽ chạy ứng dụng Django của mình với Gunicorn và Giám sát.
- Máy chủ web Nginx: Ví dụ này sẽ chỉ cho bạn cách sử dụng Nginx làm proxy ngược cho dự án Django của mình. Điều này cho phép dự án Django của bạn có thể truy cập thông qua tên miền cục bộ
Mã:
sudo apt update
Mã:
sudo apt install build-essential python3-dev python3-pip python3-venv nginx supervisor postgresql libpq5 libpq-dev
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22283%22%3E%3C/svg%3E
Sau khi cài đặt các phụ thuộc, hãy chạy các lệnh sau để xác minh các dịch vụ PostgreSQL, Nginx và Giám sát và đảm bảo các dịch vụ đó đang chạy và được bật.
Kiểm tra dịch vụ PostgreSQL sử dụng lệnh bên dưới.
Mã:
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22187%22%3E%3C/svg%3E
Kiểm tra dịch vụ Nginx bằng lệnh bên dưới.
Mã:
sudo systemctl is-enabled nginx
sudo systemctl status nginx
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22286%22%3E%3C/svg%3E
Cuối cùng, hãy kiểm tra Supervisor bằng cách sử dụng bên dưới lệnh.
Mã:
sudo systemctl is-enabled supervisor
sudo systemctl status supervisor
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22243%22%3E%3C/svg%3E
Cài đặt Django qua Pip
Khung web Django có thể được cài đặt theo nhiều cách khác nhau, bao gồm cài đặt thủ công qua Git, thông qua trình quản lý gói Pip Python hoặc kết hợp với môi trường bị cô lập với mô-đun venv và Pip. Trong ví dụ này, bạn sẽ cài đặt Django thông qua trình quản lý gói Pip trên môi trường Python bị cô lập.Đăng nhập vào người dùng của bạn thông qua lệnh bên dưới.
Mã:
su - username
Mã:
mkdir -p ~/testdjango; cd ~/testdjango
Mã:
python3 -m venv venv
Mã:
source venv/bin/activate
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22560%22%20height=%22253%22%3E%3C/svg%3E
Trong môi trường ảo venv, hãy thực thi lệnh pip bên dưới để cài đặt nền tảng web Django. Thao tác này sẽ cài đặt Django trong môi trường ảo Python của bạn chứ không phải trên toàn hệ thống.
Mã:
pip install django
or
pip install django==4.2.4
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22250%22%3E%3C/svg%3E
Xác minh phiên bản Django của bạn sau khi quá trình cài đặt hoàn tất bằng lệnh django-admin bên dưới.
Mã:
django-admin --version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22552%22%20height=%2292%22%3E%3C/svg%3E
Tạo dự án Django đầu tiên
Phần này sẽ hướng dẫn bạn cách tạo dự án Django đầu tiên và sử dụng máy chủ PostgreSQL làm cơ sở dữ liệu mặc định. Để đạt được điều đó, hãy hoàn thành các bước sau:- Chuẩn bị cơ sở dữ liệu và người dùng.
- Tạo Dự án Django thông qua django-admin.
- Di chuyển cơ sở dữ liệu và tạo các tệp tĩnh.
- Tạo người dùng quản trị và chạy Django.
Chuẩn bị Cơ sở dữ liệu và Người dùng
Chạy lệnh pip bên dưới để cài đặt gói Python psycopg2 vào môi trường ảo của bạn. Đây là trình điều khiển Python sẽ được Django sử dụng để kết nối với máy chủ cơ sở dữ liệu PostgreSQL.
Mã:
pip install psycopg2
exit
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22253%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh sau để đăng nhập vào PostgreSQL shell.
Mã:
sudo -u postgres psql
Mã:
CREATE USER django WITH PASSWORD 'p4ssw0rd';
CREATE DATABASE djangodb OWNER django;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22577%22%20height=%22238%22%3E%3C/svg%3E
Tiếp theo, chạy các truy vấn sau để xác minh danh sách cơ sở dữ liệu và người dùng trên PostgreSQL của bạn máy chủ.
Mã:
\du
\l
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22376%22%3E%3C/svg%3E
Gõ quit để thoát khỏi máy chủ PostgreSQL.
Tạo Dự án Django
Trước tạo dự án Django, đăng nhập vào tài khoản người dùng của bạn và kích hoạt môi trường ảo venv.
Mã:
su - bob
cd testdjango; source venv/bin/activate
Mã:
django-admin startproject testapp .
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22664%22%20height=%22211%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh sau để tạo một bí mật ngẫu nhiên cho dự án Django của bạn. Hãy chắc chắn sao chép đầu ra, vì bạn sẽ sử dụng nó để bảo mật cài đặt Django của mình.
Mã:
python3 -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2263%22%3E%3C/svg%3E
Bây giờ hãy sử dụng trình soạn thảo ưa thích của bạn và mở testapp/settings.py tệp.
Mã:
nano testapp/settings.py
Mã:
import os
Mã:
SECRET_KEY = 'fzahzbm*wrxoleqb0^-3%%tf^y!b6lsc5-c#2^@#s6gkyrl2ef'
Mã:
ALLOWED_HOSTS = ['127.0.0.1','192.168.10.15','first-django.dev']
Mã:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'djangodb',
'USER': 'django',
'PASSWORD': 'p4ssw0rd',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
Mã:
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
Di chuyển cơ sở dữ liệu và tạo tệp tĩnh
Trước Khi di chuyển cơ sở dữ liệu, hãy chạy lệnh sau để đảm bảo rằng bạn đã cấu hình cơ sở dữ liệu đúng.
Mã:
python3 manage.py check --database default
Mã:
python3 manage.py makemigrations
python3 manage.py migrate
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22737%22%20height=%22599%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh sau để tạo các tệp tĩnh cho dự án Django của bạn. Sau khi lệnh được thực thi, thư mục tĩnh mới sẽ được tạo và các tệp tĩnh sẽ được tạo vào đó.
Mã:
python3 manage.py collectstatic
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22621%22%20height=%22128%22%3E%3C/svg%3E
Tạo Admin Người dùng và chạy Django
Chạy lệnh sau để tạo người dùng quản trị cho dự án Django của bạn.
Mã:
python3 manage.py createsuperuser
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22672%22%20height=%22183%22%3E%3C/svg%3E
Sau khi người dùng quản trị được tạo, hãy chạy lệnh bên dưới để chạy Django của bạn dự án.
Mã:
python3 manage.py runserver 0.0.0.0:8080
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22719%22%20height=%22253%22%3E%3C/svg%3E
Bây giờ hãy mở trình duyệt web của bạn và truy cập địa chỉ IP của máy chủ theo sau là cổng 8080, http://192.168.10.15:8080/. Nếu cài đặt Django thành công, bạn sẽ thấy trang Django index.html mặc định như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22514%22%3E%3C/svg%3E
Bây giờ hãy truy cập vào trang quản trị Django của bạn qua đường dẫn URL /admin, http://192.168.10.15:8080/admin. Nhập tên người dùng và mật khẩu quản trị Django của bạn, sau đó nhấp vào Đăng nhập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22401%22%3E%3C/svg%3E
Bạn sẽ thấy một ví dụ về bảng điều khiển người dùng Django như thế này:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22225%22%3E%3C/svg%3E
Nhấn Ctrl+c để chấm dứt tiến trình.
Chạy Django với Gunicorn và Supervisor
Lúc này, bạn đã hoàn tất cài đặt Django và tạo dự án Django đầu tiên của mình. Ở bước tiếp theo, bạn sẽ cấu hình Django để chạy ở chế độ nền bằng cách sử dụng máy chủ Gunicorn WSGI và trình quản lý tiến trình Supervisor.Cài đặt Gunicorn
Trong môi trường ảo venv, hãy thực thi lệnh pip bên dưới để cài đặt gunicorn.
Mã:
pip install gunicorn
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22229%22%3E%3C/svg%3E
Bây giờ hãy thực hiện lệnh sau để hủy kích hoạt môi trường ảo venv và quay lại người dùng gốc của bạn.
Mã:
deactivate
exit
Chạy Django với Gunicorn và Supervisor
Tạo cấu hình giám sát mới /etc/supervisor/conf.d/testapp.conf bằng lệnh nano editor sau.
Mã:
sudo nano /etc/supervisor/conf.d/testapp.conf
Mã:
[program:testapp]
command=/bin/bash -c 'source /home/bob/testdjango/venv/bin/activate; gunicorn -t 3000 --workers 3 --bind unix:unix:/home/bob/testdjango/testapp.sock testapp.wsgi:application -w 2'
directory=/home/bob/testdjango
user=bob
group=www-data
autostart=true
autorestart=true
stdout_logfile=/home/bob/testdjango/testapp.log
stderr_logfile=/home/bob/testdjango/error.log
Cuối cùng, chạy lệnh sau để khởi động lại dịch vụ giám sát và áp dụng các thay đổi. Sau đó, hãy xác minh dịch vụ của người giám sát để đảm bảo rằng dịch vụ đang chạy.
Mã:
sudo systemctl restart supervisor
sudo systemctl status supervisor
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22258%22%3E%3C/svg%3E
Kiểm tra Django qua Supervisorctl
Thực hiện lệnh Supervisorctl bên dưới để kiểm tra trạng thái ứng dụng đang chạy trong trình giám sát.
Mã:
sudo supervisorctl status
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22639%22%20height=%22115%22%3E%3C/svg%3E
Cuối cùng, hãy kiểm tra ứng dụng Django của bạn thông qua lệnh curl bên dưới.
Mã:
curl --unix-socket /home/bob/testdjango/testapp.sock 127.0.0.1
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22314%22%3E%3C/svg%3E
Cấu hình Nginx làm Proxy ngược cho Django
Bây giờ dự án Django của bạn đang chạy ở chế độ nền, bước tiếp theo là thiết lập Nginx làm proxy ngược cho Django. Ví dụ sau sẽ sử dụng tên miền cục bộ.Tạo cấu hình khối máy chủ Nginx mới /etc/nginx/sites-available/django bằng trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/nginx/sites-available/django
Mã:
server {
listen 80;
server_name first-django.dev;
location = /favicon.ico { access_log off; log_not_found off; }
try_files $uri @django;
location /static {
alias /home/bob/testdjango/static/;
}
location @django {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://unix:/home/bob/testdjango/testapp.sock;
}
}
Bây giờ hãy chạy lệnh sau để kích hoạt khối máy chủ /etc/nginx/sites-available/django, sau đó xác minh cú pháp Nginx để đảm bảo rằng bạn có cú pháp phù hợp.
Mã:
sudo ln -s /etc/nginx/sites-available/django /etc/nginx/sites-enabled/
sudo nginx -t
Cuối cùng, khởi động lại dịch vụ Nginx của bạn bằng cách thực hiện lệnh sau và áp dụng các thay đổi bạn đã thực hiện.
Mã:
sudo systemctl restart nginx
Trên máy cục bộ của bạn, hãy chỉnh sửa tệp /etc/hosts cho Linux hoặc C:\Windows\System32\drivers\etc\hosts cho Windows. Sau đó, hãy định nghĩa địa chỉ IP máy chủ và tên miền của bạn như sau.
Mã:
192.168.10.15 first-django.dev
Quay lại trình duyệt web và truy cập tên miền cục bộ của bạn, bạn sẽ thấy trang index.html mặc định của dự án Django.