1. 程式人生 > >Linux專案部署之釋出路飛學城

Linux專案部署之釋出路飛學城

部署必備

python3

uwsgi wsgi(web服務閘道器介面,就是一個實現了python web應用的協議)

virtualenvwrapper

路飛的程式碼

vue的程式碼

nginx (一個是nginx對靜態檔案處理的優秀效能,一個是nginx的反向代理功能,以及nginx的預設80埠,訪問nginx的80埠,就能反向代理到應用的8000埠)

mysql

redis 購物車訂單資訊

supervisor 程序管理工具

1.部署環境準備,準備python3和虛擬環境直譯器,virtualenvwrapper

pip3 install -i https://pypi.douban.com/simple virtualenvwrapper 

 


2.修改python3的環境變數,寫入到/etc/profile中

PATH=/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/ruby/bin/:/root/bin

 

3.修改~/.bashrc

寫入變數

4.新建一個虛擬環境 s15vuedrf

mkvirtualenv s15vuedrf

 

5.準備前後端程式碼

wget https://files.cnblogs.com/files/pyyu/luffy_boy.zip 
wget https://files.cnblogs.com/files/pyyu/07-luffy_project_01.zip
如果程式碼在本地,傳到伺服器 使用 lrzsz 和xftp工具

6.解壓縮程式碼

unzip luffy_boy.zip 
unzip 07-luffy_project_01.zip

7.從vue前端程式碼搞起

1.準備node打包環境
wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz
2.解壓縮node包,配置環境變數,使用npm和node命令
3.檢測node和npm
node -v 
npm -v 
4.安裝vue專案所需的包
cd /opt/s15vuedrf/07-luffy_project_01
輸入npm install 
npm run build 
這兩條都正確配置之後,就會生成一個 dist 靜態檔案目錄,整個專案的前端內容和index.html都在這裡了
5.等待nginx載入這個 dist資料夾

 

8.部署後端程式碼所需的環境

1.啟用虛擬環境
workon s15vuedrf 
2.通過一條命令,匯出本地的所有軟體包依賴 
pip3 freeze > requirements.txt 
3.將這個requirements.txt 傳至到伺服器,在伺服器的新虛擬環境中,安裝這個檔案,就能安裝所有的軟體包了
pip3 install -r requirements.txt 

這個檔案內容如下:專案所需的軟體包都在這裡了
[[email protected] 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 支援高併發的啟動python專案(注意uwsgi不支援靜態檔案的解析,必須用nginx去處理靜態檔案)
1.安裝uwsgi 
pip3 install -i https://pypi.douban.com/simple uwsgi

2.學習uwsgi的使用方法
通過uwsgi啟動一個python web檔案
uwsgi --http :8000 --wsgi-file s15testuwsgi.py
--http 指定http協議 
--wsgi-file 指定一個python檔案

通過uwsgi啟動django專案,並且支援熱載入專案,不重啟專案,自動生效 新的 後端程式碼

uwsgi --http :8000 --module s15drf.wsgi --py-autoreload=1

--module 指定找到django專案的wsgi.py檔案


5.使用uwsgi的配置檔案,啟動專案
1.建立一個uwsgi.ini配置檔案,寫入引數資訊
touch uwsgi.ini 

[uwsgi]
# Django-related settings
# the base directory (full path)
#指定專案的絕對路徑的第一層路徑!!!!!!!!!!!!!!!!!!!!!!!!
chdir = /opt/s15vuedrf/luffy_boy/

# Django's wsgi file
# 指定專案的 wsgi.py檔案!!!!!!!!!!!!
# 寫入相對路徑即可,這個引數是以 chdir引數為相對路徑
module = luffy_boy.wsgi

# the virtualenv (full path)
# 寫入虛擬環境直譯器的 絕對路徑!!!!!!
home = /root/Envs/s15vuedrf
# process-related settings
# master
master = true
# maximum number of worker processes
#指定uwsgi啟動的程序個數    
processes = 1

#這個引數及其重要!!!!!!
# the socket (use the full path to be safe
#socket指的是,uwsgi啟動一個socket連線,當你使用nginx+uwsgi的時候,使用socket引數
socket = 0.0.0.0:8000

#這個引數是uwsgi啟動一個http連線,當你不用nginx只用uwsgi的時候,使用這個引數
#http = 0.0.0.0:8000

# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true

6.使用uwsgi配置檔案啟動專案
uwsgi --ini uwsgi.ini 

supervisor程序管理工具

1.將linux程序執行在後臺的方法有哪些
第一個,命令後面加上 & 符號
python manage.py runserver & 

第二個 使用nohup命令

第三個使用程序管理工具

2.安裝supervisor,使用python2的包管理工具 easy_install ,注意,此時要退出虛擬環境!!!!
2.安裝supervisor,使用python2的包管理工具 easy_install ,注意,此時要退出虛擬環境!!!!
2.安裝supervisor,使用python2的包管理工具 easy_install ,注意,此時要退出虛擬環境!!!!
如果沒有命令,使用以下命令,安裝
yum install python-setuptools
easy_install supervisor

3.通過命令,生成一個配置檔案,這個檔案就是寫入你要管理的程序任務
echo_supervisord_conf > /etc/supervisor.conf

4.編輯這個配置檔案,寫入操作 django專案的 命令 
vim /etc/supervisor.conf 
直接到最底行,寫入以下配置
[program:s15luffy]
command=/root/Envs/s15vuedrf/bin/uwsgi --ini /opt/s15vuedrf/luffy_boy/s15drf/uwsgi.ini

5.啟動supervisord服務端,指定配置檔案啟動
supervisord -c /etc/supervisor.conf

6.通過supervisorctl管理任務
supervisorctl -c /etc/supervisor.conf

7.supervisor管理django程序的命令如下
supervisorctl直接輸入命令會進入互動式的操作介面
> stop s15luffy 
> start s15luffy 
> status s15luffy

9.啟動luffy的後端程式碼

配置nginx步驟如下
1.編譯安裝nginx
2.nginx.conf配置如下

#第一個server虛擬主機是為了找到vue的dist檔案, 找到路飛的index.html
server {
listen 80;
server_name 192.168.13.79;

#當請求來自於 192.168.13.79/的時候,直接進入以下location,然後找到vue的dist/index.html 
location / {
root /opt/s15vuedrf/07-luffy_project_01/dist;
index index.html;
}

}

#由於vue傳送的介面資料地址是 192.168.13.79:8000 我們還得再準備一個入口server
server {
listen 8000;
server_name 192.168.13.79;

#當接收到介面資料時,請求url是 192.168.13.79:8000 就進入如下location
location / {
#這裡是nginx將請求轉發給 uwsgi啟動的 9000埠
uwsgi_pass 192.168.13.79:9000;
# include 就是一個“引入的作用”,就是將外部一個檔案的引數,匯入到當前的nginx.conf中生效
include /opt/nginx112/conf/uwsgi_params;
}
}

3.啟動nginx 
./sbin/nginx 直接啟動 
此時可以訪問 192.168.13.79 檢視頁面結果

 


啟動路飛專案,這個專案用的是sqllite,因此安裝mysql自行選擇

redis必須安裝好,存放購物車的資料