centos+nginx+uwsgi部署django項(xiàng)目上線
上傳完整django項(xiàng)目文件到服務(wù)器
sftp ftp lrzsz都可以上傳文件到服務(wù)器,看自己
我django項(xiàng)目叫yunwei,主要app是rabc和web,整個(gè)項(xiàng)目放/opt/下
如下:
[root@test-code opt]# ls django_virt nginx redis redis-6.2.6 yunwei [root@test-code opt]# ls yunwei/ manage.py rbac static templates uwsgi web yunwei [root@test-code opt]# ls yunwei/uwsgi/ cut_log.sh log uwsgi.ini uwsgi.log uwsgi.pid uwsgi.sock [root@test-code opt]#
/opt/yunwei/就是我的django項(xiàng)目的根目錄,manage.py就是在這個(gè)目錄下,/opt/yunwei/下有一個(gè)同名子目錄yunwei,下面有一個(gè)setting.py的配置文件
Python安裝
如果用到的python版本是2,不需要重新安裝,如果是3,那么需要重新安裝,參照:centos安裝python3.8
django相關(guān)庫(kù)的安裝
#在原項(xiàng)目處導(dǎo)出django項(xiàng)目安裝的庫(kù)存入文件 pip freeze > install.txt
把文件放到需要部署的服務(wù)器上,并安裝文件內(nèi)的包
#在待部署的服務(wù)器上執(zhí)行 pip install -r install.txt
nginx安裝&配置(處理靜態(tài)請(qǐng)求和代理動(dòng)態(tài)請(qǐng)求到uwsgi)
nginx安裝參照:linux安裝nginx
nginx配置文件如下
[root@test-code opt]# cat /opt/nginx/conf.d/django.conf? server { ? ??? ?listen 8881; ? ??? ?server_name localhost; ? ??? ?server_tokens off;?? ? ?? ?? ?location /static { ? ? ? ? ? ? ? ? root ?/opt/yunwei; ? ? ? ? ? ? ? ? index ?index.html index.htm; ? ? ? ? ? ? ? ? } ?? ?location / { ? ? ?? ??? ?include uwsgi_params; #nginx加載uwsgi模塊 ? ? ? ? ? ? uwsgi_buffer_size 16k; ? ? ? ? ? ? uwsgi_busy_buffers_size 24k; ? ? ? ? ? ? #如果你后端的需要超過(guò)60秒時(shí)間處理請(qǐng)求,那么一定要加上下面三個(gè)超時(shí)時(shí)間的設(shè)置,不然60s之后nginx斷開(kāi)鏈接報(bào)超時(shí) ? ? ? ? ? ? uwsgi_send_timeout 600; ? ? ? ?# 指定向uWSGI傳送請(qǐng)求的超時(shí)時(shí)間,完成握手后向uWSGI傳送請(qǐng)求的超時(shí)時(shí)間。 ? ? ? ? ? ? uwsgi_connect_timeout 600; ? # 指定連接到后端uWSGI的超時(shí)時(shí)間。 ? ? ? ? ? ? uwsgi_read_timeout 600; ? ? ? ?# 指定接收uWSGI應(yīng)答的超時(shí)時(shí)間,完成握手后接收uWSGI應(yīng)答的超時(shí)時(shí)間。? ? ? ? ? ? ? uwsgi_pass unix:/opt/yunwei/uwsgi/uwsgi.sock; #nginx對(duì)應(yīng)的uwsgi socket文件 ? ? ?? ?} }
uwsgi安裝&配置
pip install uwsgi
在django的項(xiàng)目目錄下/opt/yunwei/創(chuàng)建一個(gè)uwsgi的目錄用于存放uwsgi相關(guān)的文件。
cd /opt/yunwei/ && mkdir uwsgi touch uwsgi/uwsgi.ini
創(chuàng)建配置文件
[root@test-code yunwei]# cat uwsgi/uwsgi.ini [uwsgi] #django項(xiàng)目的根目錄,即manage.py所在的目錄 chdir=/opt/yunwei #django項(xiàng)目的wsgi,yuwnei的項(xiàng)目名 module=yunwei.wsgi:application socket=/opt/yunwei/uwsgi/uwsgi.sock #這里是我的python虛擬環(huán)境,可以不配置 home=/opt/django_virt #進(jìn)程數(shù) workers=5 #pid文件路徑 pidfile=/opt/yunwei/uwsgi/uwsgi.pid #IP端口 socket = 0.0.0.0:8000 master=true #退出清理文件 vacuum=true #啟用線程 enable-threads=true #序列化接受的內(nèi)容,如果可能的話(huà) thunder-lock=true #設(shè)置自中斷時(shí)間,如果后端處理一些請(qǐng)求時(shí)間比較長(zhǎng),這個(gè)一定要設(shè)置大一點(diǎn) harakiri=3600 # socket-timeout=3600 #這個(gè)是和nginx搭配部署時(shí)的設(shè)置 http-timeout=3600 #這個(gè)是單獨(dú)部署時(shí)的設(shè)置 #設(shè)置緩沖 post-buffering=65535 buffer-size = 6553600 #后臺(tái)守護(hù)方式運(yùn)行,日志路徑 daemonize=/opt/yunwei/uwsgi/uwsgi.log
標(biāo)題關(guān)閉setting.py的DEBUG模式
vim /opt/yunwei/yunwei/setting.py DEBUG = True #改為 DEBUG = False
debug模式為T(mén)rue時(shí),django會(huì)自己處理static的靜態(tài)請(qǐng)求,現(xiàn)在是nginx去處理這些請(qǐng)求,故為False
做完上述步驟,只需要啟動(dòng)uwsgi和nginx即可,通過(guò)nginx listen端口去訪問(wèn)
#uwsgi 啟動(dòng)命令 uwsgi --ini /opt/yunwei/uwsgi/uwsgi.ini #uwsgi 重啟命令 uwsgi --reload /opt/yunwei/uwsgi/uwsgi.ini
uwsgi的日志文件在/opt/yunwei/uwsgi/uwsgi.log處
可以通過(guò) ss -tnulp | grep uwsgi 去kill -9 進(jìn)程ID去殺掉進(jìn)程
#啟動(dòng)nginx nginx #重啟 nginx -s reload #關(guān)閉 nginx -s stop #檢測(cè)配置文件是否正確 nginx -t
搞定,作此記錄。到此這篇關(guān)于centos+nginx+uwsgi部署django項(xiàng)目上線的文章就介紹到這了,更多相關(guān)nginx uwsgi部署django內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Centos環(huán)境部署django項(xiàng)目的全過(guò)程(永久復(fù)用)
- 將django項(xiàng)目部署到centos的踩坑實(shí)戰(zhàn)
- centos8使用Docker部署Django項(xiàng)目的詳細(xì)教程
- Centos8下django項(xiàng)目部署 nginx+uwsgi的教程
- CentOS下寶塔部署Django項(xiàng)目的詳細(xì)教程
- 詳解centos7+django+python3+mysql+阿里云部署項(xiàng)目全流程
- Centos部署django服務(wù)nginx+uwsgi的方法
- 將Django項(xiàng)目部署到CentOs服務(wù)器中
- 詳解將Django部署到Centos7全攻略
- django如何部署到centos服務(wù)器上
相關(guān)文章
Python實(shí)現(xiàn)遍歷子文件夾并將文件復(fù)制到不同的目標(biāo)文件夾
這篇文章主要介紹了如何基于Python語(yǔ)言實(shí)現(xiàn)遍歷多個(gè)子文件夾,將每一個(gè)子文件夾中大量的文件,按照每一個(gè)文件的文件名稱(chēng)的特點(diǎn)復(fù)制到不同的目標(biāo)文件夾中,感興趣的可以了解下2023-08-08Python Socket實(shí)現(xiàn)簡(jiǎn)單TCP Server/client功能示例
這篇文章主要介紹了Python Socket實(shí)現(xiàn)簡(jiǎn)單TCP Server/client功能,結(jié)合實(shí)例形式分析了Python基于socket創(chuàng)建TCP服務(wù)器Server與客戶(hù)端client相關(guān)實(shí)現(xiàn)步驟與操作技巧,需要的朋友可以參考下2017-08-08Python實(shí)現(xiàn)讀取字符串按列分配后按行輸出示例
這篇文章主要介紹了Python實(shí)現(xiàn)讀取字符串按列分配后按行輸出,涉及Python針對(duì)字符串的遍歷、判斷、運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下2018-04-04python Pandas時(shí)序數(shù)據(jù)處理
這篇文章主要介紹了python Pandas時(shí)序數(shù)據(jù)處理,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06python 模擬貸款卡號(hào)生成規(guī)則過(guò)程解析
這篇文章主要介紹了python 模擬貸款卡號(hào)生成規(guī)則過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Python Social Auth構(gòu)建靈活而強(qiáng)大的社交登錄系統(tǒng)實(shí)例探究
這篇文章主要為大家介紹了Python Social Auth構(gòu)建靈活而強(qiáng)大的社交登錄系統(tǒng)實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01python編寫(xiě)adb截圖工具的實(shí)現(xiàn)源碼
adb截圖工具可用于Android手機(jī)及Android終端,Android端或者Android終端的遠(yuǎn)程截圖至本地電腦中,今天通過(guò)本文給大家介紹python編寫(xiě)adb截圖工具的實(shí)現(xiàn)源碼,感興趣的朋友一起看看吧2021-08-08ubuntu 18.04搭建python環(huán)境(pycharm+anaconda)
這篇文章主要為大家詳細(xì)介紹了ubuntu 18.04搭建python環(huán)境,包括Anaconda安裝、Pycharm安裝及初始配置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06