前后端分离-部署文档
1,安装pip3 sudo apt-get install python3-pip
2,pip3 install --upgrade pip 更新pip3版本
3,更新pip3至最新版本后 - 需要修改 pip3 文件,流程如下
3.1 sudo vi /usr/bin/pip3
3.2 修改代码至如下
from pip import __main__ if __name__ == '__main__': sys.exit(__main__._main())
4,安装django sudo pip3 install Django==1.11.8
5, 安装flask sudo pip3 install flask
6, 安装jwt sudo pip3 install pyjwt
7, 安装uwsgi sudo pip3 install uwsgi
8, 安装pymsql sudo pip3 install pymysql
9, 安装pillow sudo pip3 install pillow [注:django image字段用]
10,官网下载 django-cors-headers-3.0.2.tar ,安装源码包,方法如下
10.1 解压 tar -zxvf django-cors-headers-3.0.2.tar
10.2 cd 至 解压后的目录 并执行 sudo python3 setup.py install
11,安装nginx sudo apt-get install nginx
11.1 flask client 的nginx 配置;进入 /etc/nginx/conf.d/目录;
切换超级用户 sudo su; touch flask.conf 创建flask client配置
配置细节如下:
server {
listen 80;
server_name 192.144.179.50;
charset utf-8;
client_max_body_size 75M;
location / {
include uwsgi_params; # 导入uwsgi配置-
uwsgi_pass 127.0.0.1:5555; # 转发端口,需要和uwsgi配置当中的监听端口一致
uwsgi_param UWSGI_PYTHON /usr/bin/python3; # Python解释器所在的路径,如果有虚拟环境可将路径设置为虚拟环境
uwsgi_param UWSGI_CHDIR /home/ubuntu/tedu/dnblog/client; # 项目根目录
uwsgi_param UWSGI_SCRIPT flask_client.py:app; # 项目的主程序,比如你测试用run.py文件,文件中app = Flask(__name__),那么这里就填run:app
}---
}
11, 博客项目 进入 client 目录下,执行 touch blog_client.ini 创建uwsgi配置文件
11.1 配置详情如下
[uwsgi]
socket = 127.0.0.1:5555 #uwsgi监听的地址和端口
chdir = /home/ubuntu/tedu/dnblog/client #项目目录-绝地路径
wsgi-file = flask_client.py #flask启动文件
callable = app #flask中初始化flask的变量
processes = 2
master = true #启动主进程管理子进程
vacuum = true #进程停止后 回收pid
daemonize = server.log #守护进程的日志位置
11.2 执行uwsgi --ini blog_client.ini 启动flask - client
11.3 浏览器执行 公网地址/index 显示博客首页
12 django 启动
12.1 进入项目目录 ,与settings平级目录的地方;执行 touch blog_django_uwsgi.ini 创建 uwsgi配置
12.2 具体配置细节:
[uwsgi] socket = 127.0.0.1:8080
chdir = /home/ubuntu/tedu/dnblog #项目目录
wsgi-file = dnblog/wsgi.py #相对chdir的wsgi.py所在位置路径
processes = 2
pidfile=duwsgi.pid
daemonize=duwsgi.log
vacuum=True
master=True
12.3 nginx添加配置:
进入 /etc/nginx/conf.d/目录;
切换超级用户 sudo su; touch django.conf 创建配置
配置细节如下:
server { listen 8000;
server_name 127.0.0.1;
charset utf-8;
client_max_body_size 75M;
location / {-
include uwsgi_params; # 导入uwsgi配置-
uwsgi_pass 127.0.0.1:8080; # 转发端口,需要和uwsgi配置当中的监听端口一致
}
location /media {
#指定静态资源
root /home/tarena/PycharmProjects/tedu_blog_all/dnblog;
}
}
其他: 1,代码打包至远程服务器,2, 配置数据库 3, 修改client中所有templates中html带有http协议的地址【127.0.0.1 更换 公网IP】