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.訪問路飛的課程列表,以及添加購物車數據