前端构建
1、修改环境配置(API地址)
新版本配置(src/config/index.js):
老版本配置(src/api/url中_url 地址为后端服务器地址):
2、构建生产环境 npm run build
3、把构建的静态文件frontend\dist目录文件拷贝到backend\frontend目录(覆盖)
说明:线上node部署前端的且启动命令为npm start
的,请把API_DOMAIN
后端地址都改为线上,或使用npm run build
命令启动前端
后端配置
1、修改config.py配置为线上相关配置(服务器ip/域名也要配置,上传文件时需要)
import os
from application.settings import BASE_DIR
# BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# ================================================= #
# ************** mysql数据库 配置 ************** #
# ================================================= #
# 数据库地址
DATABASE_ENGINE = "django.db.backends.mysql"
# 数据库地址
DATABASE_HOST = "127.0.0.1"
# 数据库端口
DATABASE_PORT = 3306
# 数据库用户名
DATABASE_USER = "root"
# 数据库密码
DATABASE_PASSWORD = "root"
# 数据库名
DATABASE_NAME = "lyadmin_db"
#数据库编码
DATABASE_CHARSET = "utf8mb4"
# 数据库长连接时间(默认为0,单位秒)即每次请求都重新连接,debug模式下该值应该写为0 ,mysql默认长连接超时时间为8小时
DATABASE_CONN_MAX_AGE = 0 #推荐120(2分钟),使用 None 则是无限的持久连接(不推荐)。
# ================================================= #
# ************** 服务器基本 配置 ************** #
# ================================================= #
IS_DEMO = False #是否演示模式(演示模式只能查看无法保存、编辑、删除、新增)
IS_SINGLE_TOKEN = False #是否只允许单用户单一地点登录(只有一个人在线上)(默认多地点登录),只针对后台用户生效
ALLOW_FRONTEND = True#是否关闭前端API访问
FRONTEND_API_LIST = ['/api/app/','/api/xcx/','/api/h5/']#微服务前端接口前缀
DOMAIN_HOST = "http://127.0.0.1:8000"
EXEC_LOG_PATH = os.path.join(BASE_DIR, 'logs','lybbnexec.log')
TEMP_EXEC_PATH = os.path.join(BASE_DIR, 'logs')
......
2、运行python manage.py collectstatic
收集静态文件到django static目录
3、修改backend\application\settings中为正式环境
DEBUG = False
关闭REST-FRAMEWORK的web测试页面 #线上部署正式环境,关闭web接口测试页面
'DEFAULT_RENDERER_CLASSES':(
'rest_framework.renderers.JSONRenderer',
),
关闭接口文档地址application/urls.py(注释掉或删掉路由):
#api文档地址(正式上线需要注释掉)
re_path(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
re_path(r'^swagger(?P<format>\.json|\.yaml)$', schema_view.without_ui(cache_timeout=0), name='schema-json'),
path('lyapi/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
path(r'lyredoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
4、使用nginx反向代理web静态文件,提升访问速度(添加位置在include配置文件后)
#启用压缩提升静态文件访问速度:compression-webpack-plugin 配置
gzip on;
gzip_min_length 1k;
gzip_comp_level 9;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/octet-stream;
gzip_vary on;
# 配置禁用 gzip 条件,支持正则,此处表示 ie6 及以下不启用 gzip(因为ie低版本不支持)
gzip_disable "MSIE [1-6]\.";
#自定义:nginx跳过uwsgi直接处理静态请求
location /static {
alias /www/wwwroot/django-vue-lyadmin/static/;
}
#自定义:nginx跳过uwsgi直接处理静态请求(直接穿透访问不经过django需要nginx自行处理跨域)
location /media {
add_header Access-Control-Allow-Origin *;#跨域配置(允许跨域访问)
alias /www/wwwroot/django-vue-lyadmin/media/;
}
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}