Nginx+Uwsgi+Django 項(xiàng)目部署到服務(wù)器的思路詳解
首先先說一下思路:
1.本地django項(xiàng)目打包 主要用到的是 python自帶的distutils.core 下的 setup,具體代碼在下面,主要講的兩個(gè)問題是package主要打包為和目錄同級(jí)的代碼,例如:TCMS如果還有一個(gè)子文件夾,那就不能自動(dòng)打包了。這個(gè)時(shí)候需要用到data_files。glob(*filename)文件名模式匹配,不用遍歷整個(gè)目錄判斷每個(gè)文件是不是符合。
from distutils.core import setupimport globsetup( name = 'demo', version = '0.1', packages = [’author_zxx’,’TCMS’,’static’], data_files= glob.glob(’templates/*.html’) )
2.打包用到的木塊,也就是python的庫,pip freeze >> requirement.txt (requirement.txt 問文件名,隨便起)
pip freeze > requeirement.txt
3.服務(wù)器安裝虛擬環(huán)境(非常重要,這一步一定要在開始。)
yum install virtualenvyum install cirtualenvwrapper
4.創(chuàng)建虛擬環(huán)境 并且 指定虛擬換 用到的python 解釋器版本
# 創(chuàng)建一個(gè)項(xiàng)目目錄cd my_project# 創(chuàng)建虛擬環(huán)境 my_project_env 為虛擬環(huán)境的名稱virtualenv my_project_env# 指定虛擬環(huán)境所用到的python解釋器版本 -p后面為python解釋器存放的路徑, my_project_env 為虛擬環(huán)境的名稱virtualenv -p /usr/bin/python2.7 my_project_env# 創(chuàng)建完成虛擬環(huán)境之后會(huì)生成一個(gè)文件夾,之后在bin文件夾中會(huì)有一個(gè)activate,我們?cè)谑褂锰摂M環(huán)境需要激活虛擬環(huán)境,source activate。source my_project_env/bin/activate#退出虛擬環(huán)境deactivate
5.在虛擬環(huán)境中安裝django 和 uwsgi 。要指定安裝版本和開發(fā)環(huán)境要一樣
pip install django==3.0.4pip install uwsgi
6.創(chuàng)建django中的項(xiàng)目
# . 表示在當(dāng)前目錄下創(chuàng)建,如果不加,會(huì)在project_name 下創(chuàng)建一個(gè)同名的目錄。django-admin startproject ’project_name’ .
7. 將項(xiàng)目通過FileZilla 或者其他交互軟件,傳入到剛剛所創(chuàng)建的目錄中。
8.項(xiàng)目上傳完畢之后,需要安裝我們所需要的包。
# 剛剛 pip freeze > requirement.txt 所得pip install -r requirement.txt
9.完成之后,可以通過 python manage.pu runserver 進(jìn)行測(cè)試,是否成功。顯示出下面得內(nèi)容,即為成功。
May 08, 2020 - 10:53:33Django version 3.0.4, using settings ’TsmWeb.settings’Starting development server at http://127.0.0.1:8000/Quit the server with CTRL-BREAK.
10.之后我們需要安裝uwsgi替我們代替 python manage.py runserver. 因?yàn)樵谏a(chǎn)環(huán)境中我們不可能一直手動(dòng)得去開啟服務(wù)器,這個(gè)時(shí)候就需要uwsgi,剛剛已經(jīng)安裝過uwsgi。我們?cè)诜?wù)器項(xiàng)目目錄下創(chuàng)建一個(gè)test.py 文件。
# test.pydef application(env, start_response): start_response(’200 OK’, [(’Content-Type’,’text/html’)]) return 'Hello World'
11. 之后在linux 命令行輸入
uwsgi --http :8001 --wsgi-file /‘路徑,從跟開始’/test.py
如果出現(xiàn)下面得代碼,則表示成功:
*** Starting uWSGI 2.0.18 (64bit) on [Fri May 8 11:00:36 2020] ***compiled with version: 4.8.5 20150623 (Red Hat 4.8.5-39) on 07 May 2020 02:26:03os: Linux-3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020
12.之后我們需要安裝Nginx
yum install -y pcre pcre-develyum install -y zlib zlib-develyum install gcc-c++yum install -y openssl openssl-develwget -c https://nginx.org/download/nginx-1.14.0.tar.gztar -zxvf nginx-1.14.0.tar.gzcd nginx-1.14.0./configuremakemake install
13.之后測(cè)試nginx是否可以正常使用,我們需要進(jìn)到nginx文件下得sbin/ 目錄,運(yùn)行 ./nginx ,之后在瀏覽器訪問我們地址即可。如果出現(xiàn) Welcome to Nginx! 即表示成功
14.現(xiàn)在是nginx和uwsgi配置,這個(gè)也是最頭疼的。
# uwsgi 官網(wǎng)https://uwsgi-docs.readthedocs.io/en/latest/# nginx主要問題在 nginx.conf,下面附上詳解https://www.jb51.net/article/131362.htm
總結(jié)
到此這篇關(guān)于Nginx+Uwsgi+Django 項(xiàng)目部署到服務(wù)器的文章就介紹到這了,更多相關(guān)nginx uwsgi django 項(xiàng)目部署內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. .NET6打包部署到Windows Service的全過程2. ASP基礎(chǔ)入門第八篇(ASP內(nèi)建對(duì)象Application和Session)3. asp知識(shí)整理筆記4(問答模式)4. 使用純HTML的通用數(shù)據(jù)管理和服務(wù)5. ASP中if語句、select 、while循環(huán)的使用方法6. 詳解瀏覽器的緩存機(jī)制7. JSP狀態(tài)管理的簡(jiǎn)單介紹8. css進(jìn)階學(xué)習(xí) 選擇符9. ASP動(dòng)態(tài)網(wǎng)頁制作技術(shù)經(jīng)驗(yàn)分享10. 讀寫xml文件的2個(gè)小函數(shù)
