centos+nginx+uwsgi部署django項目上線的方法

django項目叫yunwei,主要app是rabc和web,整個項目放/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]#

centos+nginx+uwsgi部署django項目上線的方法

/opt/yunwei/就是我的django項目的根目錄,manage.py就是在這個目錄下,/opt/yunwei/下有一個同名子目錄yunwei,下面有一個setting.py的配置文件

python安裝

如果用到的python版本是2,不需要重新安裝,如果是3,那么需要重新安裝

django相關庫的安裝

#在原項目處導出django項目安裝的庫存入文件 pip?freeze?>?install.txt

把文件放到需要部署的服務器上,并安裝文件內的包

#在待部署的服務器上執行 pip?install?-r?install.txt

nginx安裝&配置(處理靜態請求和代理動態請求到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; ????????????#如果你后端的需要超過60秒時間處理請求,那么一定要加上下面三個超時時間的設置,不然60s之后nginx斷開鏈接報超時 ????????????uwsgi_send_timeout?600;????????#?指定向uWSGI傳送請求的超時時間,完成握手后向uWSGI傳送請求的超時時間。 ????????????uwsgi_connect_timeout?600;???#?指定連接到后端uWSGI的超時時間。 ????????????uwsgi_read_timeout?600;????????#?指定接收uWSGI應答的超時時間,完成握手后接收uWSGI應答的超時時間。? ????????????uwsgi_pass?unix:/opt/yunwei/uwsgi/uwsgi.sock;?#nginx對應的uwsgi?socket文件 ????????}  }

uwsgi安裝&配置

pip?install?uwsgi

在django的項目目錄下/opt/yunwei/創建一個uwsgi的目錄用于存放uwsgi相關的文件。

cd?/opt/yunwei/?&&?mkdir?uwsgi touch?uwsgi/uwsgi.ini

創建配置文件

[root@test-code?yunwei]#?cat?uwsgi/uwsgi.ini? [uwsgi] #django項目的根目錄,即manage.py所在的目錄 chdir=/opt/yunwei #django項目的wsgi,yuwnei的項目名 module=yunwei.wsgi:application socket=/opt/yunwei/uwsgi/uwsgi.sock #這里是我的python虛擬環境,可以不配置 home=/opt/django_virt #進程數 workers=5 #pid文件路徑 pidfile=/opt/yunwei/uwsgi/uwsgi.pid #IP端口 socket?=?0.0.0.0:8000 master=true #退出清理文件 vacuum=true #啟用線程 enable-threads=true #序列化接受的內容,如果可能的話 thunder-lock=true #設置自中斷時間,如果后端處理一些請求時間比較長,這個一定要設置大一點 harakiri=3600?# socket-timeout=3600?#這個是和nginx搭配部署時的設置 http-timeout=3600?#這個是單獨部署時的設置 #設置緩沖 post-buffering=65535 buffer-size?=?6553600 #后臺守護方式運行,日志路徑 daemonize=/opt/yunwei/uwsgi/uwsgi.log

標題關閉setting.py的DEBUG模式

vim?/opt/yunwei/yunwei/setting.py  DEBUG?=?True?#改為?DEBUG?=?False

debug模式為True時,django會自己處理static的靜態請求,現在是nginx去處理這些請求,故為False

做完上述步驟,只需要啟動uwsgi和nginx即可,通過nginx listen端口去訪問

#uwsgi?啟動命令? uwsgi?--ini?/opt/yunwei/uwsgi/uwsgi.ini #uwsgi?重啟命令? uwsgi?--reload?/opt/yunwei/uwsgi/uwsgi.ini

uwsgi的日志文件在/opt/yunwei/uwsgi/uwsgi.log處

可以通過 ss -tnulp | grep uwsgi 去kill -9 進程ID去殺掉進程

#啟動nginx nginx #重啟 nginx?-s?reload #關閉 nginx?-s?stop #檢測配置文件是否正確 nginx?-t

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享