多人博客开发项目-部署

一 后端代码部署

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配置以下

多人博客开发项目-部署

重载配置以下

多人博客开发项目-部署

访问以下

多人博客开发项目-部署

博客平台基本部署完成

相关文章
相关标签/搜索