重慶做網(wǎng)站建設(shè)seo推廣一年要多少錢
Django從 3.0版開始加入對ASGI的支持,使Django開始具有異步功能。
截止目前的5.0版,對異步支持逐步也越來越好,相信在未來的版本中異步將會支持的更加完善。
所以說,我們也需要適時的更新我們的技能,學(xué)會在asgi異步服務(wù)器環(huán)境中部署django項(xiàng)目!
在部署之前我們所有的依賴均隔離在python的虛擬環(huán)境中,并不是在全局環(huán)境中,包括supervisor也是通過pip命令安裝到虛擬環(huán)境中使用,并不使用 ubuntu的 sudo apt install命令安裝在全局環(huán)境中,這是需要注意的一點(diǎn)!
在部署之前一定要先激活虛擬環(huán)境!
# ubuntu激活虛擬環(huán)境
source venv/bin/activate
項(xiàng)目依賴安裝,根據(jù)各自的項(xiàng)目安裝,一般標(biāo)準(zhǔn)的項(xiàng)目依賴均收集在項(xiàng)目根目錄的requirements.txt文件中!
安裝Daphne
Daphne 是一個純 Python 的 ASGI 服務(wù)器,由 Django 項(xiàng)目的成員維護(hù)。它充當(dāng)了 ASGI 的參考服務(wù)器。
你可以使用pip
安裝 Daphne:
pip install daphne
終端啟動命令
daphne -b 0.0.0.0 -p 8000 baykeproject.asgi:application
運(yùn)行該命令后它將開啟一個進(jìn)程,監(jiān)聽 0.0.0.0:8000
。這需要你的項(xiàng)目位于 Python path 上。為了確保這點(diǎn),你應(yīng)該在與 manage.py
文件相同的路徑中運(yùn)行這個命令。
但我們總不能每次部署都需要再終端去使用這個命令吧,所以接下來就需要用到一個進(jìn)程管理工具supervisor來托管該進(jìn)程!
在此之前,我們需要先在項(xiàng)目根目錄中的deploy目錄下新建一個asgi的文件夾,并將daphne的ini配置文件放在該目錄下以備后續(xù)使用!
- deploy/asgi/daphne.ini
[fcgi-program:asgi]
# TCP socket used by Nginx backend upstream
# Nginx 后端上游使用的 TCP 套接字
socket=tcp://localhost:8000# Directory where your site's project files are located
# 站點(diǎn)項(xiàng)目文件所在的目錄
directory=/home/qbc/web/code# Each process needs to have a separate socket file, so we use process_num
# 每個進(jìn)程都需要有一個單獨(dú)的socket文件,所以我們使用process_num
# Make sure to update "mysite.asgi" to match your project name
# 確保更新 “mysite.asgi” 以匹配您的項(xiàng)目名稱
command=daphne -u /home/qbc/web/deploy/daphne/daphne%(process_num)d.sock --fd 0 --access-log - --proxy-headers baykeproject.asgi:application# Number of pro