Vue+Django前后端分離項目部署,nginx默認端口80,數據提交監聽端口9000,反向代理(uwsgi配置)端口9999
1.下載項目文件(統一在/opt/luffyproject目錄)
(1)前端vue--------------wget https://files.cnblogs.com/files/pyyu/07-luffy_project_01.zip
(2)后端django---------wget https://files.cnblogs.com/files/pyyu/luffy_boy.zip
(3)解壓-----------------unzip解壓(如需實際操作,項目文件可以直接聯系博主)
2.vue框架依賴的nodejs
(1)下載nodejs--------wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz
(2)解壓-----------------tar -zxvf node-v8.6.0-linux-x64.tar.gz
(3)進入源碼包:bin文件夾存在,說明已經編譯好,查看是否可用以下命令:
------node -v
------npm -v
(4)添加nodejs源碼包bin目錄到環境變量:
------vim /etc/profile
------PATH='/opt/tengine231/sbin:/opt/python3.6/bin:/usr/local/sbin:
/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:
/opt/luffyproject/node-v8.6.0-linux-x64/bin'
3.配置前端vue的靜態文件請求路徑
(1)前端項目/top/luffyproject/07-luffy_project_01/src/restful/api.js
(2)修改api.js中的請求ip和端口----sed -i 's/127.0.0.1:8000/192.168.160.134:9000/g' api.js
(3)注意在項目部署的服務器ip變化時需要更改配置,同時重新執行npm install和 npm run build進行編譯生成dist靜態文件
4.編譯前端vue代碼
(1)npm install----網速不好可以先修改npm下載源:npm config set registry https://registry.npm.taobao.org
(2)npm run build--/top/luffyproject/07-luffy_project_01/中種生成一個dist靜態文件夾,作為nginx.conf中的server{}匹配的root根目錄
(3)注意:如果使用虛擬機,ip可能會自動改變,需重新編譯
5.配置nginx.conf
(1)前端vue靜態文件返回配置
location / {
root /opt/luffyproject/07-luffy_project_01/dist;
index index.html index.htm;
#確保刷新不出現404
try_files $uri $uri/ /index.html;
}
(2)后端django服務反向代理配置
server {
listen 9000;
server_name localhost;
location / {
include uwsgi_params;
uwsgi_pass 0.0.0.0:9999;
}
}
(3)啟動nginx------nginx
6.前端vue靜態頁面已經部署完成
7.django項目的虛擬環境配置
創建虛擬環境-------mkvirtualenv luffy_env4
已創建有直接開啟------workon luffy_env4
8.配置uwgis
(1)進入后端django項目---------cd /opt/luffyproject/luffy_boy
(2)啟動測試django項目:
啟動django項目---------python3 manage.py runserver 0.0.0.0:9003
報錯根據提示在該虛擬環境內處理下載需要的包
pip3 install django==2.0
........
pip3 install -r requirements.txt(批量下載)
(3)下載uwsgi模塊 ---------pip3 install uwsgi
(4)手動創建uwsgi.ini文件,寫入配置:
[uwsgi]
# Django-related settings
# the base directory (full path)
chdir = /opt/luffyproject/luffy_boy
# Django's wsgi file
module = luffy_boy.wsgi
# the virtualenv (full path)
home = /root/Envs/luffy_env4
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 2
# the socket (use the full path to be safe
#以socket請求與nginx結合
socket = 0.0.0.0:9999
#以http請求可以直接在劉昂器發起訪問,測試用
#http =0.0.0.0:9999
# clear environment on exit
vacuum = true
#設置守護進程,后台運行,也可指定文件,輸出日志
daemonize=yes
(5)啟動uwsgi--------uwsgi --ini uwsgi.ini
(6)uwsgi以http形式進行測試訪問:
瀏覽器直接訪問ip端口
部分功能無法實現,缺少redis數據庫
(7)物理環境安裝redis數據庫
yum install redis
systemctl start redis
systemctl status redis
redis-cli--> ping----------啟動redis客戶端ping是否得到PONG
(8)修改uwsgi.ini以socket形式結合nginx
(9)退出虛擬環境--------deactivate
9.重啟nginx--------nginx -s reload