|
一、前言 Django項目準(zhǔn)備好了,那么如何把項目部署到生產(chǎn)環(huán)境是需要接下來要考慮的事情,難不成還用調(diào)試時候用的 python manage.py runserver 0.0.0.0:8000 的這種方式布署,No,答案肯定不是,如果真的這樣弄,那只能為你的項目祈禱了。 OK,閑話少說,這節(jié)就來給大家講解一下,如果將Django項目布署到生產(chǎn)環(huán)境中。 目前最常用的django部署方式應(yīng)該當(dāng)屬Django+Nginx+Uwsgi組合了。今天 也是重點講解這種方式。 本文講解的部署環(huán)境以Mac系統(tǒng)操作為準(zhǔn),其它Liunx系的操作系統(tǒng),操作也大同小異。 二、環(huán)境準(zhǔn)備 1、安裝uwsgi 當(dāng)然在一些Ubuntu系統(tǒng)中,可能在安裝uwsgi前,安裝下述依賴庫,當(dāng)然本文以Mac系統(tǒng)操作為主 2、安裝nginx 安裝完后,默認(rèn)配置文件目錄: /usr/local/etc/nginx/nginx.conf 三、 配置 1、uwsgi配置 一般來講都是通過新建一個uwsgi.ini配置文件 ,將配置項都填寫進(jìn)去,當(dāng)然有可以直接以命令行的參數(shù)協(xié)帶必要的參數(shù)。 主要配置項如下圖所示:
2、Nginx配置 Nginx作為反向代理服務(wù),凌駕于uwsgi協(xié)議服務(wù)之前,整個流程走向原理: Nginx配置主要項:
主要三個參數(shù)需要重點關(guān)注: 1、一個靜態(tài)資源路徑location /static,alias需要配置Django項目存放絕對路徑地址。 2、uwsgi_pass:填寫在uwsgi中socket對應(yīng)的監(jiān)聽地址和端口號。 3、include: 填寫uwsgi_params文件存放的絕對路徑,通常此文件存放在nginx目錄下。 配置完成后,用命令先測試一下,如下: nginx -t -c /usr/local/etc/nginx/nginx.conf
四、 啟動 啟動uwsgi服務(wù)命令: wsgi --ini uwsgi.ini && nginx 五、 常見問題 1、如果未啟動Nginx,直接通過django+uwsgi組合來啟動django項目時,訪問時,提示 invalid request block size 解決方法:將uwsgi.ini文件中,socket改成http方式,如http = 0.0.0.0:8000 2、如果用nginx監(jiān)控的端口為80時,啟動nginx服務(wù),可能會出現(xiàn)權(quán)限的問題。 解決方法:sudo nginx |
|
|