多人博客开发项目-部署

一 后端代码部署

1 django打包

1 setup.py文件创建

多人博客开发项目-部署

详细内容如下

#!/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='[email protected]',
      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 

如下

多人博客开发项目-部署

2 部署

1 创建目录和相关虚拟环境并进行处理

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

结果如下

多人博客开发项目-部署

2 安装相关依赖和部署

1 安装相关依赖

yum -y install mysql-devel  python-devel

2 部署

复制之前的包至此目录下并解压重命名

多人博客开发项目-部署

安装相关项目依赖

cd blog/
 pip install --upgrade pip  # 升级安装包 
pip install -r  requirements 

查看安装结果

多人博客开发项目-部署

启动服务

python  manage.py  runserver 0.0.0.0:80  

结果如下

多人博客开发项目-部署

测试如下

多人博客开发项目-部署

多人博客开发项目-部署

二 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配置如下

多人博客开发项目-部署

重载配置如下

多人博客开发项目-部署

访问如下

多人博客开发项目-部署

博客平台基本部署完成

猜你喜欢

转载自blog.51cto.com/11233559/2446373