linux部署項目(先後端分離項目)

參考博客html

技術棧前端

路飛學城部署 vue + nginx + uwsgi + django + mysql + redis(就是一個key - value型數據庫,緩存型數據庫,內存型數據庫)vue

部署步驟以下(4步)node

1.前端vue部署 python

1.下載vue代碼,解壓縮
wget https://files.cnblogs.com/files/pyyu/07-luffy_project_01.zip

unzip 07-luffy_project_01.zip 


2.配置node環境,去打包編譯vue代碼

下載node的代碼包
    wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz
解壓縮node代碼包
tar -zxvf node-v8.6.0-linux-x64.tar.gz
配置node的PATH環境變量便可
修改PATH生效便可
vim /etc/profile
source /etc/profile

3.驗證node是否正確配置(node就是如同python解釋器   npm就是如同pip軟件包管理工具)
node -v 
npm -v   

4.修改vue的代碼文件
由於vue須要向後臺發起請求,找到uwsgi
咱們的架構是將uwsgi隱藏在nginx後面

全部,vue(端口80)首先找的是nginx(反向代理,端口是9000),而後nginx(反向代理,端口是9000)反向代理給uwsgi (後端地址,9001) 

修改方式以下
api.js路徑以下/opt/s18luffy/07-luffy_project_01/src/restful
#這裏更改你本身的服務器ip地址
sed -i  "s/127.0.0.1:8000/192.168.226.128:9000/g"  api.js 

    sed 是linux處理字符串的命令
    -i 是將結果替換到文件
    "s/127.0.0.1:8000/192.168.226.128:9000/g"   #解釋  s是替換模式  /你想替換的內容/你想替換的結果/   g是全局替換 
    api.js  你想修改操做的文件
    
    
    
5.進行打包vue,生成靜態文件夾 dist
確保你在vue的代碼文件夾 
npm install  #解決vue代碼所需的模塊依賴  

npm run build    #進行編譯打包


6.當vue打包正確完成後,生成一個dist靜態文件夾,此時就給丟給nginx去作反向代理處理!!!

 

2.後端uwsgi部署mysql

    1.下載路飛代碼
    wget  https://files.cnblogs.com/files/pyyu/luffy_boy.zip
    2.安裝新的虛擬環境,解決環境依賴問題 ,能夠用requirements.txt解決依賴問題
vim 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
    
    3.安裝這個文件 requirements.txt
    pip3 install -i https://pypi.douban.com/simple -r requirements.txt 

    4.使用uwsgi去啓動路飛學城後端
    使用uwsgi.ini配置文件方式啓動,內容以下
[uwsgi]
# Django-related settings
# the base directory (full path)
#填寫項目的絕對路徑(第一層路徑)
chdir           = /opt/s18luffy/luffy_boy
# Django's wsgi file
#填寫crm第二層目錄下的wsgi.py文件的路徑
module          = luffy_boy.wsgi
# the virtualenv (full path)
#填寫虛擬環境的絕對路徑
home            = /root/Envs/s18luffy

# process-related settings
# master
master          = true
# maximum number of worker processes
#基於uwsgi的多進程,根據cpu來優化 
processes       = 4
# the socket (use the full path to be safe

#若是你用了nginx反向代理,就填寫socket參數
#若是你用了nginx反向代理,就填寫socket參數
#若是你用了nginx反向代理,就填寫socket參數
#若是你用了nginx反向代理,就填寫socket參數
#若是你用了nginx反向代理,就填寫socket參數
socket          = 0.0.0.0:9001  

#若是你沒用nginx,想直接經過瀏覽器測試後端,使用http 
#http = 0.0.0.0:9001

# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true
    
    5.用supervisor也去管理路飛的後臺
        [program:s18luffy]
        command=/root/Envs/s18luffy/bin/uwsgi  --ini  /opt/s18luffy/luffy_boy/uwsgi.ini
        stopasgroup=true
        killasgroup=true

 

3.nginx反向代理轉發linux

修改nginx.conf內容以下


虛擬主機1
 server {
        #第一個虛擬主機,監聽的80端口
        listen       80;
        server_name  192.168.226.128;
        location / {
            root /opt/s18luffy/07-luffy_project_01/dist;
            index index.html;
        }
}

虛擬主機2

server {
    listen 9000;
    server_name  192.168.226.128;
    location  / {
        uwsgi_pass 0.0.0.0:9001;
        include uwsgi_params;
    }

}

重啓nginx生效

 

4.啓動redis,路飛學城用的是sqllite,不須要mysqlnginx

yum install redis -y  #安裝命令
systemctl start redis  

redis登陸命令
redis-cli  登陸命令
登陸後輸入 ping 返回一個pong表明正確啓動
5.windows訪問路飛學城首頁,查看課程列表 ,進行alex帳戶登陸
帳戶:  alex 
密碼:  alex3714 

登陸後,添加django課程信息後,能夠查看購物車信息,表明正確啓動路飛學城
最後訪問

 

1.路飛學城部署

2.先把vue靜態文件和nginx部署起來,能夠看到路飛首頁
    vue部署
    1.下載vue代碼
    2.配置node環境
    3.修改vue代碼向後臺發送數據接口的地址 
    4.代碼確認無誤後,進行編譯安裝
    npm instlal 
    npm run build 
    5.以上4步,目的是爲了,獲得最後一步的 那個 dist文件夾
    裏面有我須要的index.html  static靜態文件夾
    
    6.將這個dist丟給 nginx去返回頁面便可
    
3.把後端uwsgi+django+mysql運行起來
備註,先別用supervisor了


使用 uwsgi --ini  uwsgi.ini方式去啓動

將uwsgi --ini uwsgi.ini 這個命令進程,運行在後臺的方式
1. 第一種方式 、
uwsgi --ini uwsgi.ini  &  
2.第二種方式
在uwsgi.ini中寫入 daemonize  = uwsgi.log  就是將後臺運行的日誌寫入到uwsgi.log



3.確保nginx,vue,uwsgi,redis都正常後,路飛便可訪問
部署總結
相關文章
相關標籤/搜索