多人博客開發項目-部署

一 後端代碼部署

1 django打包

1 setup.py文件建立

多人博客開發項目-部署

詳細內容以下html

#!/usr/bin/poython3.6
#conding:utf-8
from  distutils.core import setup
import  glob

setup(name='blog',
      version='1.0',
      description='demo blog',
      author='zhang',
      author_email='18829272841@163.com',
      url='https://www.zhang.com',
      packages=['blog','post','user'], # 打包py文件
      py_modules=['manage'], #能夠不打包manage.py文件
      data_files=glob.glob('templates/*.html')  + ['requirements','manage.py'],  # 打包其餘文件
     )

2 應用程序根目錄下打包以下

1 導出相關依賴安裝配置

pip freeze > requirements  # 此處的文件名須要和上面的須要打包中的其餘文件的文件名相同

查看結果以下前端

多人博客開發項目-部署

2 打包

python setup.py sdist  --formats=gztar   #此處代表打包文件爲tar.gz

以下 python

多人博客開發項目-部署

2 部署

1 建立目錄和相關虛擬環境並進行處理

mkdir blog01
 cd blog01/
 pyenv virtualenv 3.5.3  blog01
 pyenv local blog01

結果以下 mysql

多人博客開發項目-部署

2 安裝相關依賴和部署

1 安裝相關依賴

yum -y install mysql-devel  python-devel

2 部署

複製以前的包至此目錄下並解壓重命名react

多人博客開發項目-部署

安裝相關項目依賴 webpack

cd blog/
 pip install --upgrade pip  # 升級安裝包 
pip install -r  requirements

查看安裝結果 nginx

多人博客開發項目-部署

啓動服務 web

python  manage.py  runserver 0.0.0.0:80

結果以下 sql

多人博客開發項目-部署

測試以下 npm

多人博客開發項目-部署

多人博客開發項目-部署

二 UWSGI

1 WSGI概述

web server gateway interface,是python中定義的Web Server 與應用程序的接口定義

應用程序有WSGI的django負責,而WSGI的server 可經過UWSGI 來負責

2 UWSGI

UWSGI 是一個C語言項目,提供一個WEB服務器,其支持WSGI協議,能夠和python的WSGI 應用程序通訊。


官方文檔

https://uwsgi-docs.readthedocs.io/en/latest/

UWSGI 能夠直接啓動HTTP服務,接受HTTP請求。並調用django應用

3 安裝和配置

1 安裝

pip install uwsgi

查看安裝是否成功

多人博客開發項目-部署

2 uWSGI+ Django項目部署

根目錄以下

多人博客開發項目-部署

在django項目根目錄中運行以下代碼

uwsgi  --http :8000 --wsgi-file  blog/wsgi.py --stats :8001

測試以下

多人博客開發項目-部署

上述代表運行正常

三 nginx 相關配置

1 HTTP nginx反向代理配置

基本環境以下

多人博客開發項目-部署

相關配置以下

修改配置文件/etc/nginx/conf.d/default.conf 添加以下內容

location ^~  /api/   {
        rewrite  ^/api(/.*)  $1  break;  #重寫URL,去掉前面的api,$1表示去掉api後對應的url 
        proxy_pass  http://192.168.1.200:8000;
    }

生效配置以下

systemctl reload nginx

測試以下

多人博客開發項目-部署

2 部署UWSGI

目前的nginx和UWSGI 直接使用的是HTTP 通訊,效率低下,需修改成uwsgi 通訊

1 建立blog.ini 文件

1 本次項目的根目錄是 /root/blog01/blog,所以blog.ini放入此目錄下 ,相關內容以下

[uwsgi]
socket=127.0.0.1:9000
chdir=/root/blog01/blog
wsgi-file=blog/wsgi.py

啓動服務

uwsgi blog.ini

以下

多人博客開發項目-部署

2 修改nginx反向代理以下

location ^~  /api/   {
        rewrite  ^/api(/.*)  $1  break;  
        #proxy_pass  http://192.168.1.200:8000;
        include  uwsgi_params;
        uwsgi_pass  127.0.0.1:9000;
    }

生效配置並重載

systemctl reload nginx

測試以下

多人博客開發項目-部署

四 前端項目打包

1 react項目打包

1 rimraf 安裝

其做用是遞歸刪除文件,至關於 rm -rf

npm install  rimraf  --save-dev

2 package.json 配置

在package.json中替換,結果以下

多人博客開發項目-部署

上述的build的做用是在調用build時執行的是build對應的命令


修改 webpack.config.prod.js 以下

多人博客開發項目-部署

3 構建

npm  run build

多人博客開發項目-部署

打包上傳

多人博客開發項目-部署

多人博客開發項目-部署

修改nginx配置以下

多人博客開發項目-部署

重載配置以下

多人博客開發項目-部署

訪問以下

多人博客開發項目-部署

博客平臺基本部署完成

相關文章
相關標籤/搜索