Linux項目部署之發布路飛學城
阿新 • • 發佈:2019-01-06
步驟 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/ # 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必須安裝好,存放購物車的數據
Linux項目部署之發布路飛學城