本文章教學Django專案如何部署到Nginx,以及一些常見的盲點。本文章適用於會Django專案建置並打算部署至Nginx的人閱讀。
本文章就不多贅述關於Django建置專案的教學,當你建置完Django專案後,並且準備部署至Nginx時,請完成以下步驟:
STATICFILES_DIRS = [
BASE_DIR / "static",
'/Your/Django/Project/Static/',
]
當正式版要部署到Nginx時,可以將這些Static檔案移至STATIC_ROOT,並放在權限較低的目錄,像是/var/,方便讓Nginx存取,也能提高網頁安全性。
STATIC_ROOT = '/var/www/project/static'
可是,把/Your/Django/Project/Static移至STATIC_ROOT不是很麻煩嗎?每次更新都需要做一次Copy than Paste,因此你可以輸入一行指令快速搬移:
python3 manage.py collectstatic
如此一來,就能將/Your/Django/Project/Static的所有檔案移至STATIC_ROOT。
Gunicorn是一種Python Web Server Gateway Interface(WSGI),建置較為簡單、速度較快、資源佔用率較低,另一種更常見的WSGI是uWSGI,不過後來我發現使用Gunicorn比較簡單方便使用,所以今天的教學就以Gunicorn作為Nginx和Django的夾心餅。
請在Virtualenv的環境下安裝,輸入python3 -m pip install gunicorn
touch gunicorn_config.py
創建gunicorn_config.py文件
vi gunicorn_config.py
編輯gunicorn_config.py文件
workers = 1
bind = '127.0.0.1:8000' # 設定IP與Port
wsgi_app = 'project.wsgi:application' # WSGI位置
commnad = '/home/Django/venv/bin/gunicorn' # Gunicorn的Venv位置
pythonpath = '/Your/Django/Project/Path' # Django專案位置