当前位置:
首页 > Python基础教程 >
-
Django+uwsgi+vue部署(不使用nginx)
背景
- 项目在内网部署,本来想使用nginx部署,因为某些原因,所以采用了Django+uwsgi+vue部署的部署方式
部署流程
Vue打包
- 不熟悉VUE,按照给的步骤进行
-
执行
npm run lint-fix
-
执行
npm run build
- 将生成的包放到Django项目根目录的static目录下
Django配置
静态文件目录
-- project/
.....
manage.py
-- static/
....
dist/
index.html
.....
setting.py配置
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'static/')], # 新增,vue打包生成的index的此目录下
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
STATIC_SAN = os.path.join(BASE_DIR, 'static/dist')
路由配置urls.py
urlpatterns = [
path(r'', TemplateView.as_view(template_name='index.html')),
# 静态文件, 此配置是使用runserver,开发时的配置.生产时不需要(?会被uwsgi的路由覆盖)
# 因为VUE引用的静态文件是此路由,所以这样配置.也可按照注释的配置进行
url(r'^dist/(?P<path>.*)$', static.serve, {'document_root': settings.STATIC_SAN}, name='static'),
# url(r'^static/(?P<path>.*)$', static.serve, {'document_root': settings.STATIC_ROOT}, name='static'),
]
# 覆盖原有404
handler404 = page_not_found
重写handler404
from django.http import HttpResponseNotFound
from django.shortcuts import render
def page_not_found(request, exception):
return HttpResponseNotFound(render(request, 'index.html'))
uwsgi配置和说明 pro.ini
[uwsgi]
#项目目录
chdir=/usr/local/pro/
#项目启动模块
;module=pro/pro.wsgi
wsgi-file = pro/wsgi.py
master=True
home = /usr/local/python/python38
# 测试时配置与否不影响运行
PYTHONHOME = /usr/local/python/python38/bin
;进程id存放文件
pidfile=/run/pro/pro.pid
vacuum=True
;最大请求数为10000设置每个工作进程处理请求的上限,达到上限时,将回收(重启)该进程。可以预防内存泄漏
max-requests=10000
;日志文件目录,设置了此项可以让程序后台运行
daemonize=/tmp/pro/pro.log
;监听9100端口,注意这里不是socket,当时困恼了几天
http=:8021
;stats=:9001
;防止部分文件名特殊字符乱码
env = LANG=en_US.UTF-8
processes=2
threads=4
# 启用线程支持
enable-threads = true
# 在master而不是每个worker中加载应用
lazy-apps = false
# 向外提供静态文件,'/static'代表路由,第二个static代表项目静态文件目录,此项可配置多个
# 因为与django配置的路由相同,请求先到达uwsgi服务器,所以不会执行django的路由
static-map = /nis-console=static/nis-console
# 日志切分 50MB,切分的会文件名为daemonize + 时间戳
log-maxsize = 50000000
# 默认打开
;log-truncate = true
运行uwsgi
uwsgi --ini /usr/local/pro/pro/pro.ini
停止运行
ps -ef |grep uwsgi|grep -v grep|awk '{print $2}'|xargs kill -9
出处:
https://www.cnblogs.com/tastepy/p/15823573.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式