1. 程式人生 > >Linux項目部署之發布路飛學城

Linux項目部署之發布路飛學城

步驟 art 配置文件 當前 -c txt 必須 環境 sca

部署必備

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 

這個文件內容如下:項目所需的軟件包都在這裏了
[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 支持高並發的啟動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/

# Djangos 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必須安裝好,存放購物車的數據

Linux項目部署之發布路飛學城