Django là một framework python được sử dụng để phát triển các trang web và ứng dụng động. Nó tuân theo kiến trúc MVC (Model-View-Controller). Sử dụng Django giúp tăng tốc quá trình phát triển vì hầu hết các tác vụ cơ bản đều được Django xử lý.
Hướng dẫn này sẽ hướng dẫn bạn cách cài đặt framework Django trên máy chủ Ubuntu 22.04. Bạn cũng sẽ tạo một dự án demo và thử nghiệm nó.
Cài đặt Django bằng lệnh sau.
Chạy lệnh sau để xác minh thành công cài đặt.
Phiên bản Django đi kèm với Ubuntu là phiên bản LTS hiện tại được hỗ trợ cho đến năm 2024. Tuy nhiên, đây không phải là phiên bản hiện tại. Nếu bạn muốn cài đặt bản phát hành gần đây, phương pháp này không dành cho bạn.
Cài đặt
Chúng ta hãy tạo một thư mục dự án demo.
Tạo một môi trường ảo bằng lệnh sau. Thay thế
Thao tác này sẽ cài đặt phiên bản Python di động, pip trong thư mục dự án của bạn. Để cài đặt bất kỳ gói nào vào dự án, bạn phải kích hoạt môi trường bằng lệnh sau.
Dấu nhắc shell của bạn sẽ thay đổi để phản ánh môi trường ảo.
Bây giờ môi trường ảo đã được kích hoạt, hãy sử dụng
Xác minh cài đặt.
Tùy thuộc vào yêu cầu của dự án, bạn có thể cài đặt phiên bản Django khác trong các mục sau cách.
Xác minh cài đặt.
Như bạn thấy, phương pháp này cài đặt phiên bản Django mới hơn phiên bản lấy từ kho lưu trữ Ubuntu.
Để thoát khỏi môi trường ảo, hãy chạy lệnh sau lệnh.
Sao chép kho lưu trữ vào thư mục
Chuyển sang thư mục mới tạo thư mục.
Tạo môi trường ảo.
Kích hoạt môi trường.
Cài đặt Django bằng
Xác minh cài đặt.
Như bạn thấy, phiên bản ở đây là phiên bản phát triển mới nhất. Phiên bản phát triển của Django không hữu ích cho môi trường sản xuất.
Tạo một môi trường ảo Python.
Kích hoạt môi trường.
Cài đặt Django.
Để xây dựng dự án, chúng ta cần sử dụng Lệnh
Tiếp theo, chúng ta cần di chuyển cơ sở dữ liệu bằng lệnh
Bạn sẽ nhận được kết quả đầu ra sau.
Tiếp theo, tạo một người dùng quản trị để truy cập vào trang quản trị của Django giao diện.
Bạn sẽ được nhắc nhập tên người dùng, email và mật khẩu.
Mở tệp cài đặt bằng lệnh sau.
Tìm mục sau.
Nhập địa chỉ IP máy chủ của bạn vào trong dấu ngoặc vuông. Mỗi mục phải được đặt trong dấu ngoặc kép và nhiều mục phải được phân tách bằng dấu phẩy. Nhập
Chúng tôi đã sử dụng địa chỉ IP để khớp với máy chủ của mình. Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Trước khi bạn kiểm tra máy chủ phát triển, bạn cần định cấu hình tường lửa để cho phép Django hoạt động. Django sử dụng cổng 8000 theo mặc định. Mở cổng bằng Tường lửa đơn giản (UFW).
Khởi động máy chủ phát triển.
Khởi chạy URL
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22687%22%3E%3C/svg%3E
Bạn có thể truy cập vào giao diện quản trị bằng cách theo URL
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22718%22%20height=%22446%22%3E%3C/svg%3E
Nhập thông tin đăng nhập đã tạo trước đó để đăng nhập vào bảng quản trị được hiển thị bên dưới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22281%22%3E%3C/svg%3E
Sau khi hoàn thành dự án demo, bạn có thể đóng máy chủ bằng cách nhấn Ctrl + C trong terminal.
Đảm bảo rằng bạn đã thoát khỏi máy chủ từ thiết bị đầu cuối bằng cách nhấn Ctrl + C.
Chạy lệnh sau để chạy máy chủ phát triển Django.
Bây giờ, máy chủ Django của bạn sẽ tiếp tục chạy cho đến khi bạn tắt nó theo cách thủ công. Lệnh sẽ cung cấp cho bạn ID tiến trình và xuất ra một lệnh khác.
Nhấn Ctrl + C để thoát. Máy chủ Django gốc sẽ tiếp tục chạy. Bạn có thể xác minh bằng cách mở URL trong trình duyệt của mình.
Sau khi hoàn tất, bạn cần phải kết thúc tiến trình. Lệnh
Như bạn thấy, có hai tiến trình đang được chạy, một tiến trình có ID 42650 và tiến trình còn lại có ID 42651.
Chạy lệnh sau để tắt máy chủ bằng ID tiến trình bạn đã lấy được ở trên.
Cài đặt Gunicorn.
Trước khi tiếp tục, chúng ta cần kiểm tra khả năng phục vụ dự án của Gunicorn. Chạy lệnh sau để chạy Gunicorn.
Điều này sẽ khởi động Gunicorn trên cùng một giao diện mà Django đang chạy. Để xác minh, hãy mở URL
Khi bạn hoàn tất quá trình kiểm tra, hãy nhấn Ctrl + C trên thiết bị đầu cuối để thoát Gunicorn.
Hủy kích hoạt môi trường ảo để quay lại shell thông thường của bạn.
Tạo và mở tệp socket Gunicorn để chỉnh sửa.
Dán mã sau vào nó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Tiếp theo, tạo và mở tệp dịch vụ Gunicorn để chỉnh sửa.
Dán mã sau vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc. Thay thế
Tải lại daemon hệ thống để làm mới các tệp systemd.
Kích hoạt và khởi động socket Gunicorn tập tin.
Kiểm tra trạng thái của ổ cắm Gunicorn.
Bạn sẽ nhận được một đầu ra.
Dịch vụ Gunicorn vẫn chưa chạy như bạn có thể kiểm tra.
Để kiểm tra cơ chế kích hoạt ổ cắm, hãy chạy lệnh sau lệnh.
Bạn sẽ nhận được đầu ra HTML của trang chủ Django trong thiết bị đầu cuối của mình. Điều này cũng khởi động Gunicorn để phục vụ ứng dụng. Kiểm tra lại trạng thái của dịch vụ và bạn sẽ thấy rằng nó đang chạy ngay bây giờ.
Nhập khóa ký của Nginx.
Thêm kho lưu trữ cho phiên bản ổn định của Nginx.
Cập nhật hệ thống kho lưu trữ.
Cài đặt Nginx.
Xác minh cài đặt.
Dán mã sau vào nó.
Thay thế vị trí gốc trong tệp trên bằng thư mục trên máy chủ của bạn.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Mở tệp
Thêm dòng sau vào trước dòng
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Xác minh Nginx của bạn cấu hình.
Nếu bạn không thấy lỗi nào, điều đó có nghĩa là bạn có thể tiếp tục.
Bạn cũng sẽ cần thêm tên miền vào chỉ thị
Thay đổi giá trị cho
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Khởi động lại Gunicorn Socket và Dịch vụ.
Khởi động máy chủ Nginx.
Mở cổng HTTP. Bạn cũng có thể xóa cổng 8000 nếu không sử dụng nữa.
Xác minh bằng cách mở URL
Cài đặt kho lưu trữ Snapd cốt lõi.
Cài đặt Certbot.
Tạo chứng chỉ. Lệnh sau cũng sẽ tự động cấu hình Nginx.
Mở cổng HTTPS trước.
Truy cập URL
Hướng dẫn này sẽ hướng dẫn bạn cách cài đặt framework Django trên máy chủ Ubuntu 22.04. Bạn cũng sẽ tạo một dự án demo và thử nghiệm nó.
Điều kiện tiên quyết
-
Máy chủ chạy Ubuntu 22.04.
-
Người dùng sudo không phải root.
-
Đảm bảo mọi thứ được cập nhật.
Mã:
$ sudo apt update
$ sudo apt upgrade
Cài đặt Django
Có một số phương pháp để bạn có thể cài đặt Django. Quyết định phương pháp nào phù hợp nhất với bạn phụ thuộc vào cách bạn muốn định cấu hình môi trường phát triển và nhu cầu của mình. Mỗi phương pháp đều có ưu và nhược điểm riêng. Chúng ta hãy cùng xem qua tất cả các phương pháp này.Cài đặt từ kho lưu trữ Ubuntu
Phương pháp đơn giản nhất để cài đặt Django là sử dụng kho lưu trữ của Ubuntu. Ubuntu 22.04 được tích hợp sẵn Python 3.10. Bạn có thể xác minh bằng lệnh sau.
Mã:
$ python3 -V
Python 3.10.4
Mã:
$ sudo apt install python3-django
Mã:
$ django-admin --version
3.2.12
Cài đặt bằng pip
Đây là cách phổ biến nhất để cài đặt Django. Cách được khuyến nghị là tạo môi trường Python ảo. Điều này cho phép bạn cài đặt các gói Python mà không ảnh hưởng đến hệ thống.Cài đặt
pip
và mô-đun venv
. venv
được sử dụng để tạo môi trường ảo Python và pip
cài đặt Python packages.
Mã:
$ sudo apt install python3-pip python3-venv
Mã:
$ mkdir ~/sampleproject
$ cd ~/sampleproject
sample_env
bằng tên bạn muốn gọi cho môi trường ảo của mình.
Mã:
$ python3 -m venv sample_env
Mã:
$ source sample_env/bin/activate
Mã:
(sample_env) navjot@django:~/sampleproject$
pip
để cài đặt Django. Chạy lệnh sau để cài đặt Django.
Mã:
(sample_env) $ pip install django
Mã:
(sample_env) $ django-admin --version
4.0.5
Mã:
(sample_env) $ pip install django==3.2.1
Mã:
(sample_env) $ django-admin --version
3.2.1
Để thoát khỏi môi trường ảo, hãy chạy lệnh sau lệnh.
Mã:
(sample_env) $ deactivate
Cài đặt phiên bản phát triển
Bạn cũng có thể sử dụngpip
để cài đặt phiên bản phát triển của Django. Đối với điều này, chúng ta sẽ lấy phiên bản phát triển từ kho lưu trữ Github của Django.Sao chép kho lưu trữ vào thư mục
~/django-dev
bằng lệnh sau.
Mã:
$ git clone https://github.com/django/django ~/django-dev
Mã:
$ cd ~/django-dev
Mã:
$ python3 -m venv dev_django_env
Mã:
$ source dev_django_env/bin/activate
pip
. Cờ -e
cài đặt nó ở chế độ có thể chỉnh sửa, chế độ này là bắt buộc nếu bạn cài đặt từ kiểm soát phiên bản.
Mã:
(dev_django_dev) $ pip install -e ~/django-dev
Mã:
(dev_django_dev) $ django-admin --version
4.2.dev20220628195651
Tạo một dự án mẫu
Chúng ta hãy xây dựng một dự án Django mẫu. Tạo một thư mục cho dự án mẫu.
Mã:
$ mkdir ~/dj-sample
$ cd ~/dj-sample
Mã:
$ python3 -m venv sample_proj
Mã:
$ source sample_proj/bin/activate
Mã:
(sample_proj) $ pip install django
startproject
. Lệnh này tạo một thư mục khác bao gồm:- Một tập lệnh quản lý,
manage.py,
được sử dụng để quản lý các tác vụ cụ thể của Django. - Một thư mục có cùng tên với dự án bao gồm mã dự án.
Mã:
(sample_proj) $ django-admin startproject demoproject .
migrate
. Di chuyển trong Django sẽ truyền bá những thay đổi bạn thực hiện cho các mô hình của mình vào lược đồ cơ sở dữ liệu. Python sử dụng cơ sở dữ liệu SQLite theo mặc định.
Mã:
(sample_proj) $ python manage.py migrate
Mã:
Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions
Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying auth.0012_alter_user_first_name_max_length... OK Applying sessions.0001_initial... OK
Mã:
(sample_proj) $ python manage.py createsuperuser
Mã:
Username (leave blank to use 'navjot'):
Email address: [emailprotected]
Password:
Password (again):
Superuser created successfully.
Kiểm tra Máy chủ phát triển
Đã đến lúc kiểm tra ứng dụng. Để thực hiện được điều đó, bạn cần sửa đổi lệnhALLOWED_HOSTS
trong cài đặt Django. Chỉ thị này định nghĩa danh sách các địa chỉ IP và tên miền được cấp quyền truy cập vào ứng dụng Django.Mở tệp cài đặt bằng lệnh sau.
Mã:
(sample_proj) $ nano demoproject/settings.py
Mã:
ALLOWED_HOSTS = []
www.example.com
sẽ được khớp chính xác. Tuy nhiên, .example.com
sẽ khớp với example.com
và www.example.com
và bất kỳ tên miền phụ nào khác của example.com
. Do đó, nên sử dụng dấu chấm để thêm tiền tố cho tên miền để khớp với tên miền đó và các tên miền phụ của nó.
Mã:
ALLOWED_HOSTS = ['']
Trước khi bạn kiểm tra máy chủ phát triển, bạn cần định cấu hình tường lửa để cho phép Django hoạt động. Django sử dụng cổng 8000 theo mặc định. Mở cổng bằng Tường lửa đơn giản (UFW).
Mã:
(sample_proj) $ sudo ufw allow 8000
Mã:
(sample_proj) $ python manage.py runserver 0.0.0.0:8000
http://:8000
trong trình duyệt của bạn và bạn sẽ nhận được màn hình sau.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22687%22%3E%3C/svg%3E
Bạn có thể truy cập vào giao diện quản trị bằng cách theo URL
http://:8000/admin/
và bạn sẽ thấy màn hình đăng nhập sau.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22718%22%20height=%22446%22%3E%3C/svg%3E
Nhập thông tin đăng nhập đã tạo trước đó để đăng nhập vào bảng quản trị được hiển thị bên dưới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22281%22%3E%3C/svg%3E
Sau khi hoàn thành dự án demo, bạn có thể đóng máy chủ bằng cách nhấn Ctrl + C trong terminal.
Cài đặt và kiểm tra Gunicorn
Chạy máy chủ Django liên tục bằng nohup
Cho đến nay, dịch vụ của Django không liên tục. Để làm cho dịch vụ liên tục, có hai phương pháp. Phương pháp đầu tiên liên quan đến việc sử dụng tiện íchnohup
. nohup
là lệnh POSIX có nghĩa là không cúp máy. Nó được sử dụng để thực thi các lệnh theo cách không dừng lại ngay cả khi người dùng đăng xuất.Đảm bảo rằng bạn đã thoát khỏi máy chủ từ thiết bị đầu cuối bằng cách nhấn Ctrl + C.
Chạy lệnh sau để chạy máy chủ phát triển Django.
Mã:
(sample_proj) $ nohup python manage.py runserver 0.0.0.0:8000 &
Mã:
[1] 42595
(sample_proj) $ nohup: ignoring input and appending output to 'nohup.out'
^C
Sau khi hoàn tất, bạn cần phải kết thúc tiến trình. Lệnh
nohup
cung cấp cho bạn một ID tiến trình. Nhưng trên thực tế, có hai tiến trình đang được chạy. Để tìm ID cho cả hai tiến trình, hãy chạy lệnh sau.
Mã:
(sample_proj) $ ps aux | grep manage.py
navjot 42650 3.6 1.8 47792 38168 pts/0 S 02:28 0:00 python manage.py runserver 0.0.0.0.:8000
navjot 42651 7.9 2.0 344904 41708 pts/0 Sl 02:28 0:00 /home/navjot/dj-sample/sample_proj/bin/python manage.py runserver 0.0.0.0:8000
navjot 42657 0.0 0.1 6612 2172 pts/0 S+ 02:28 0:00 grep --color=auto manage.py
Chạy lệnh sau để tắt máy chủ bằng ID tiến trình bạn đã lấy được ở trên.
Mã:
(sample_proj) $ sudo kill -9 42650 42651
Cài đặt Gunicorn
Phương pháp thứ hai để chạy máy chủ Django liên tục yêu cầu bạn cài đặt máy chủ web Gunicorn và Nginx. Gunicorn là máy chủ Python WSGI HTTP. Nó sẽ giao tiếp với ứng dụng Django và sau đó Nginx sẽ hoạt động như một proxy ngược cho Gunicorn. Phương pháp này có thêm lợi ích là cung cấp cho bạn tính bảo mật và hiệu suất đi kèm với việc sử dụng Nginx.Cài đặt Gunicorn.
Mã:
(sample_proj) $ pip install gunicorn
Mã:
(sample_proj) $ gunicorn --bind 0.0.0.0:8000 demoproject.wsgi
http://:8000
trong trình duyệt của bạn và bạn sẽ nhận được trang chủ Django tương tự. Điều này có nghĩa là Gunicorn đang chạy hoàn hảo.Khi bạn hoàn tất quá trình kiểm tra, hãy nhấn Ctrl + C trên thiết bị đầu cuối để thoát Gunicorn.
Hủy kích hoạt môi trường ảo để quay lại shell thông thường của bạn.
Mã:
(sample_proj) $ deactivate
Tạo tệp Socket và Dịch vụ cho Gunicorn
Bước đầu tiên là tạo tệp socket Gunicorn. Socket Gunicorn sẽ được tạo khi khởi động và lắng nghe các kết nối. Khi có kết nối xảy ra,systems
sẽ tự động khởi động tiến trình Gunicorn để xử lý kết nối đó.Tạo và mở tệp socket Gunicorn để chỉnh sửa.
Mã:
$ sudo nano /etc/systemd/system/gunicorn.socket
Mã:
[Unit]
Description=gunicorn socket
[Socket]
ListenStream=/run/gunicorn.sock
[Install]
WantedBy=sockets.target
Tiếp theo, tạo và mở tệp dịch vụ Gunicorn để chỉnh sửa.
Mã:
$ sudo nano /etc/systemd/system/gunicorn.service
Mã:
[Unit]
Description=django gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
User=navjot
Group=nginx
WorkingDirectory=/home/navjot/dj-sample
ExecStart=/home/navjot/dj-sample/sample_proj/bin/gunicorn \ --access-logfile - \ --workers 3 \ --bind unix:/run/gunicorn.sock \ demoproject.wsgi:application
[Install]
WantedBy=multi-user.target
navjot
bằng tên người dùng hệ thống của bạn. Nhóm nginx
sẽ cho phép máy chủ Nginx giao tiếp với Django.Tải lại daemon hệ thống để làm mới các tệp systemd.
Mã:
$ sudo systemctl daemon-reload
Mã:
$ sudo systemctl start gunicorn.socket
$ sudo systemctl enable gunicorn.socket
Mã:
$ sudo systemctl status gunicorn.socket
Mã:
? gunicorn.socket - gunicorn socket Loaded: loaded (/etc/systemd/system/gunicorn.socket; disabled; vendor preset: enabled) Active: active (listening) since Thu 2022-06-30 01:43:24 UTC; 20s ago Triggers: ? gunicorn.service Listen: /run/gunicorn.sock (Stream) CGroup: /system.slice/gunicorn.socket
Jun 30 01:43:24 django systemd[1]: Listening on gunicorn socket.
Mã:
$ sudo systemctl status gunicorn.service
? gunicorn.service - django gunicorn daemon Loaded: loaded (/etc/systemd/system/gunicorn.service; disabled; vendor preset: enabled) Active: inactive (dead)
TriggeredBy: ? gunicorn.socket
Mã:
$ curl --unix-socket /run/gunicorn.sock localhost
Mã:
$ sudo systemctl status gunicorn.service
? gunicorn.service - django gunicorn daemon Loaded: loaded (/etc/systemd/system/gunicorn.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2022-06-30 01:45:09 UTC; 12s ago
TriggeredBy: ? gunicorn.socket Main PID: 42365 (gunicorn) Tasks: 4 (limit: 2241) Memory: 91.7M CPU: 1.128s CGroup: /system.slice/gunicorn.service ??42365 /home/navjot/dj-sample/sample_proj/bin/python3 /home/navjot/dj-sample/sample_proj/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock demoproject.wsgi:application ??42366 /home/navjot/dj-sample/sample_proj/bin/python3 /home/navjot/dj-sample/sample_proj/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock demoproject.wsgi:application ??42367 /home/navjot/dj-sample/sample_proj/bin/python3 /home/navjot/dj-sample/sample_proj/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock demoproject.wsgi:application ??42368 /home/navjot/dj-sample/sample_proj/bin/python3 /home/navjot/dj-sample/sample_proj/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock demoproject.wsgi:application
Jun 30 01:45:09 django systemd[1]: Started django gunicorn daemon.
Jun 30 01:45:09 django gunicorn[42365]: [2022-06-30 01:45:09 +0000] [42365] [INFO] Starting gunicorn 20.1.0
Jun 30 01:45:09 django gunicorn[42365]: [2022-06-30 01:45:09 +0000] [42365] [INFO] Listening at: unix:/run/gunicorn.sock (42365)
Jun 30 01:45:09 django gunicorn[42365]: [2022-06-30 01:45:09 +0000] [42365] [INFO] Using worker: sync
Jun 30 01:45:09 django gunicorn[42366]: [2022-06-30 01:45:09 +0000] [42366] [INFO] Booting worker with pid: 42366
.......
Cài đặt Nginx
Bước cuối cùng là cài đặt và cấu hình Nginx. Ubuntu 22.04 đi kèm với phiên bản Nginx cũ hơn. Bạn cần tải xuống kho lưu trữ Nginx chính thức để cài đặt phiên bản mới nhất.Nhập khóa ký của Nginx.
Mã:
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Mã:
$ sudo apt update
Mã:
$ sudo apt install nginx
Mã:
$ nginx -v
nginx version: nginx/1.22.0
Cấu hình Nginx
Tạo và mở tệp/etc/nginx/conf.d/django-gunicorn.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/django-gunicorn.conf
Mã:
server { listen 80; server_name server_domain_or_IP; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /home/navjot/dj-sample; } location / { 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:/run/gunicorn.sock; }
}
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Mở tệp
/etc/nginx/nginx.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;
.
Mã:
server_names_hash_bucket_size 64;
Xác minh Nginx của bạn cấu hình.
Mã:
$ sudo nginx -t
Bạn cũng sẽ cần thêm tên miền vào chỉ thị
ALLOWED_HOSTS
của mình. Mở tệp settings.py
.
Mã:
$ nano ~/dj-sample/demoproject/settings.py
ALLOWED_HOSTS
biến.
Mã:
ALLOWED_HOSTS = ['','django.example.com']
Khởi động lại Gunicorn Socket và Dịch vụ.
Mã:
$ sudo systemctl restart gunicorn.socket
$ sudo systemctl restart gunicorn.service
Mã:
$ sudo systemctl start nginx
Mã:
$ sudo ufw delete allow 8000
$ sudo ufw allow http
http://django.example.com
và trang chủ Django sẽ tải lên.Cài đặt SSL
Cho đến nay, ứng dụng Django của bạn đang được phục vụ qua kết nối HTTP dạng văn bản thuần túy. Chúng tôi khuyên bạn nên bảo vệ nó thông qua chứng chỉ SSL. Để làm được điều này, hãy sử dụng công cụ Certbot bằng công cụ Snapd. Công cụ này đã được cài đặt trên hệ thống Ubuntu 22.04.Cài đặt kho lưu trữ Snapd cốt lõi.
Mã:
$ sudo snap install core
Mã:
$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Mã:
$ sudo certbot --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d django.example.com
Mã:
$ sudo ufw allow https
https://django.example.com
trong trình duyệt của bạn để xác nhận.