django開發時只需要python就能完成,利用其自帶的開發服務,可以方便在開發環境執行起應用,但部署於生產時則需要一些額外的操作。
首先是配置的修改,settings.py
裡有些最小配置需要修改
static_root = os.path.join(os.getcwd(),
'static'
)allowed_hosts =
['127.0.0.1'
]debug =
false
如果應用裡有,樣式表資源,需要設定static_root
;debug
模式必須關掉,否則會暴露過多資訊造成安全問題;allowed_hosts
列表需要指明允許的主機。
django官方介紹了多種wsgi方式的生產部署方案:
python manage.py collectstatic
django部署方式多樣,可以根據需要選擇。
gunicorn執行django服務,apache對外暴露,反向**到gunicorn的方案基本配置過程大體如下:
通過包管理器或其他方式安裝apache, pip或其他方式安裝gunicorn。
pip install gunicorn配置反向**到gunicorn執行的django服務,配置apache處理靜態資源。
修改/etc/httpd/conf/httpd.conf
配置檔案:
#處理靜態資源配置
alias /static/ /path/to/static/
require all granted #2.4
#反向**
proxypass /static/ ! #排除/static路徑
proxypass /
proxypassreverse /
如果想要重寫server
頭,可以加入配置
header unset server
header always unset x-powered-by
header unset x-powered-by
header unset x-cf-powered-by
header unset x-mod-pagespeed
header unset x-pingback
執行apache
systemctl start httpd
最簡單的情況下,可以直接執行
gunicorn django_project.wsgi
Nginx uWSGI 部署 Django 應用
uwsgi的安裝 1wget 1sudo apt get install libxml2 dev 剩下的就簡單了 1tar zxvf uwsgi 0.9.9.2.tar.gz 2cd uwsgi 0.9.9.2 3make f makefile.py26 指定你python的版本,如果你的pytho...
Nginx uWSGI 部署 Django 應用
uwsgi的安裝 wget sudo apt get install libxml2 dev 剩下的就簡單了 tar zxvf uwsgi 0.9.9.2.tar.gz cd uwsgi 0.9.9.2 make f makefile.py26 指定你python的版本,如果你的python是2.7...
nginx uwsgi部署django 應用
python web部署 為什麼需要uwsgi 或者 gunicorn python web 部署為什麼需要nginx 直接使用uwsgi 或者是 gunicorn 同樣可以部署python web 但是以目前前後端分離的開發環境下,nginx 處理靜態資源會比 uwsgi 和 gunicorn 強...