Django前后端分離項目部署


vue+drf的前后端分離部署筆記

前端部署過程

端口划分:

vue+nginx的端口 是81 
vue向后台發請求,首先發給的是代理服務器,這里模擬是nginx的 9000 
drf后台運行在  9005端口上 

1.獲取前端代碼

wget https://files.cnblogs.com/files/pyyu/07-luffy_project_01.zip

2.解壓縮,准備編譯前端代碼

unzip 07-luffy_project_01.zip

3.下node源碼,配置nodejs編譯環境

wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz

4.配置nodejs的環境變量

tar -zxvf node-v8.6.0-linux-x64.tar.gz
# 加入PATH中
PATH="/opt/python367/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/vuedrfs24/node-v8.6.0-linux-x64/bin"

5.安裝vue代碼所需的模塊

進入前端代碼的目錄,找到package.json文件,里面定義了前端所需要的模塊信息
[root@s24_linux 07-luffy_project_01]# pwd
/vuedrfs24/07-luffy_project_01

6.修改vue的數據提交地址,修改如下配置文件

/vuedrfs24/07-luffy_project_01/src/restful/api.js 

# 批量替換ip地址信息
sed -i  's/127.0.0.1:8000/192.168.16.85:9000/g'  src/restful/api.js   

7.執行安裝模塊的命令

# 進入vue源碼目錄
# 安裝vue模塊,默認去裝package.json的模塊內容,如果出現模塊安裝失敗,手動再裝
npm install 
# 始編譯前端代碼,生成dist靜態文件夾,前端所有代碼,都打包編譯生成了一個dist
npm run build 

8.生成了dist靜態文件夾之后,丟給nginx去處理即可

#返回路飛首頁的靜態文件服務器
server {
	listen 81;
	server_name _;
	#最低級url匹配,所有請求都走到了這里
	location / {
	root  /code/07-luffy_project_01/dist;
	index  index.html;
	}
}

#反向代理虛擬主機,vue的請求轉發給drf
server {
listen 9000;
server_name _;
location / {
uwsgi_pass 0.0.0.0:9005;
include uwsgi_params;
}

}

9.重啟nginx

nginx -s reload 

后端部署過程

1.整一個新的路飛虛擬環境,然后下載后端代碼

 mkvirtualenv s24luffy

2.下載后端代碼

wget  https://files.cnblogs.com/files/pyyu/luffy_boy.zip

3.解決drf運行的模塊問題(最好使用requirements.txt文件去處理模塊問題)

	[root@web02 opt]# cat requirements.txt
	certifi==2018.11.29
	chardet==3.0.4
	crypto==1.4.1
	Django==2.1.4
	django-redis==4.10.0
	django-rest-framework==0.1.0
	djangorestframework==3.9.0
	idna==2.8
	Naked==0.1.31
	pycrypto==2.6.1
	pytz==2018.7
	PyYAML==3.13
	redis==3.0.1
	requests==2.21.0
	shellescape==3.4.1
	urllib3==1.24.1
	uWSGI==2.0.17.1

4.用uwsgi去啟動drf后台

  • 創建uwsgi.ini文件,寫入如下參數
[uwsgi]

# 填寫項目的完整絕對路徑,第一層
chdir = /vuedrfs24/luffy_boy

#指定django的wsgi文件路徑,填寫相對路徑
module  = luffy_boy.wsgi  

#填寫虛擬環境的絕對路徑
home = /root/Envs/s24luffy

master = true

#定義程序的多進程數量的,以cpu核數的2倍+1數量填寫   2n+1 數量 
processes = 9

#把uwsgi啟動在socket協議上,的8000端口

socket = 0.0.0.0:9005
  
#指定http協議的話,用戶是可以直接訪問到的,不安全的,因此使用socket協議
#http =0.0.0.0:8000
vacuum = true

5.使用supervisor進程管理工具,同管理crm和路飛的進程

[program:s24luffy]
command=/root/Envs/s24luffy/bin/uwsgi --ini //luffy_boy/uwsgi.ini    ; 程序啟動命令
autostart=true       ; 在supervisord啟動的時候也自動啟動
stopasgroup=true     ;默認為false,進程被殺死時,是否向這個進程組發送stop信號,包括子進程
killasgroup=true     ;默認為false,向進程組發送kill信號,包括子進程

6.啟動路飛后台

在學習階段吧,先干掉所有的crm和supervisor
pkill -9 uwsgi 
pkill -9 supervisor 

然后重啟supervisor
(s24luffy) [root@s24_linux luffy_boy]# supervisord -c /etc/supervisord.conf 
Unlinking stale socket /var/run/supervisor/supervisor.sock
(s24luffy) [root@s24_linux luffy_boy]# 
(s24luffy) [root@s24_linux luffy_boy]# 
(s24luffy) [root@s24_linux luffy_boy]# supervisorctl -c /etc/supervisord.conf 
s24crm                           RUNNING   pid 42172, uptime 0:00:04
s24luffy                         RUNNING   pid 42173, uptime 0:00:04

7.還得啟動redis數據庫,才能夠訪問購物車功能

1.安裝redis
 yum install redis -y 
 2.啟動redis
 systemctl start redis
 
 3.檢查redis是否正常

8.訪問路飛的課程列表,以及添加購物車數據


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM