Django+Vue服务器简单部署

本文介绍通过nginx直接访问通过django路由访问编译好的vue静态文件。

一.配置vue环境

在服务器上编译打包vue项目,需要配置vue环境。

1.下载node.js

下载想要的node版本:(node-v14.17.0-linux-x64.tar.xz)

https://nodejs.org/download/release/

2.上传到服务器上

scp -r /Users/mac/Desktop/node-v14.17.0-linux-x64.tar.xz root@172.XXX.XXX.66:/data/vue-node/

进入目录:cd /data/vue-node

解压:tar xvf node-v14.17.0-linux-x64.tar.xz

3.配置环境变量

vi ~/.bashrc

export PATH=$PATH:/data/vue-node/node-v14.17.0-linux-x64/bin/node

sourch ~/.bashrc

4.测试:

root@psh-ats-02:/data/vue-node# node -v

v14.17.0

root@psh-ats-02:/data/vue-node# npm -v

6.14.13

二. 工程代码放到服务器上 

1.手动放置工程代码到服务器(可以使用Git仓库自动部署工程到服务器)

scp -r /Users/mac/Git/PSH_ATS_WEB_VUE root@172.XX.XXX.66:/data/django/

2. 生成dist文件夹:

cd /data/django/PSH_ATS_WEB_VUE/template

npm install 

npm run build

3. 收集静态资源,在settings.py中设置的静态文件夹

cd /data/django/PSH_ATS_WEB_VUE

python3 manage.py collectstatic 

三.创建Vue前端的nginx配置文件

监听81端口,指向dist文件中的index.html

server{
	listen 81;                 #监听端口
	server_name atsweb.xxx.xxx.xxxxxx;  #域名地址
	charset     utf-8;
	ssl on;                             #配置ssl证书实现https
	ssl_certificate /etc/nginx/conf.d/SSL/psh_cert.pem;
	ssl_certificate_key /etc/nginx/conf.d/SSL/psh_key_with_pass.key.unsecure; 
	ssl_session_cache shared:SSL:1m;
	ssl_session_timeout  5m;
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
	ssl_prefer_server_ciphers on;
	
	location /static {        #请求的url    
		alias /data/django/PSH_ATS_WEB_VUE/static/;
	}
 
	location ^~/django/{       
		proxy_pass https://127.0.0.1:80;    #请求转向服务器
		add_header Content-Type "text/plain;charset=utf-8";
		add_header 'Access-Control-Allow-Origin' '*' always;
            	add_header 'Access-Control-Allow-Credentials' 'true';
		add_header 'Access-Control-Allow-Methods' 'GET, POST';	
	}
	location / {            
		root /data/django/PSH_ATS_WEB_VUE/template/dist/;    #根目录
		index index.html index.htm;     #默认页面,入口文件
	}

}

四.创建Django后台的nginx和uwsgi配置文件

1. 使用uWSGI 来部署 Django 程序

[uwsgi]
socket=:83       # 用于和 nginx 进行数据交互的端口
#http= 127.0.0.1:83

# the base directory (full path) django 程序的主目录
chdir = /data/django/PSH_ATS_WEB_VUE/

# Django s wsgi file
module= PSH_ATS_WEB_VUE.wsgi
wsgi-file= /PSH_ATS_WEB_VUE/wsgi.py

# static
static-map = /static=%(chdir)/template/dist/static

# master
master = true

# maximum number of worker processes
processes = 1

# clear environment on exit
vacuum = true

#监控python模块mtime来触发重载 (只在开发时使用)
py-autoreload=1

#在每个worker而不是master中加载应用
lazy-apps=true 

#允许用内嵌的语言启动线程。这将允许你在app程序中产生一个子线程
enable-threads = true 

#设置在平滑的重启(直到接收到的请求处理完才重启)一个工作子进程中,等待这个工作结束的最长秒数。这个配置会使在平滑地重启工作子进程中,如果工作进程结束时间超过了8秒就会被强行结束(忽略之前已经接收到的请求而直接结束)
reload-mercy = 8 

#设置最大日志文件大小
log-maxsize = 5000000

daemonize = /data/uwsgi_ini/Ats_Web_Vue/uwsgi.log
pidfile = /data/uwsgi_ini/Ats_Web_Vue/uwsgi.pid

2. 监听80端口,使用 nginx 接收的 Web 请求传递给端口为 83的 uWSGI 服务来处理

upstream VueTest {      #定义被uwsgi_pass引用的服务器组
    server 127.0.0.1:83; # for a web port socket
}

server {
    listen 80;      #监听端口
    server_name xxxx.xxx.xxx.xxxxx;   #域名
    charset     utf-8;
    ssl on;                         #配置ssl证书实现https
    ssl_certificate /etc/nginx/conf.d/SSL/psh_cert.pem;
    ssl_certificate_key /etc/nginx/conf.d/SSL/psh_key_with_pass.key.unsecure; 
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_prefer_server_ciphers on;    

    access_log      /var/log/nginx/Ats_Web_Vue_access.log;
    error_log       /var/log/nginx/Ats_Web_Vue_error.log;

    client_max_body_size 75M;

    location / {    
        uwsgi_pass  VueTest;         ##请求转向VueTest服务器
        include     /etc/nginx/uwsgi_params;
    }
}

最后,可以使用https://atsweb.xxx.xxx.xxx:80/https://atsweb.xxx.xxx.xxx:81/进行访问

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 基于Django+python的歌曲推荐系统源码+项目部署说明.zip 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能。 系统采用的技术 前端: vue 框架 后端: django 2.2.1 + sqlite3数据库 (MVC框架) 数据: python从网易云热榜爬取歌曲信息,保存到数据库中 主要功能: 展示音乐信息,根据收藏进行推荐 ## 推荐算法思路 通过协调过滤计算和其他用户的距离,然后进行筛选。如果用户数量不足,推荐数目不够15条,就会自动从 所有未打分的歌曲中按照浏览数降序选一部分填充进去。 ### 基于用户的推荐 1. 用户需要给歌曲打分。通过用户已打分的部分来计算相似度,如果用户未打分,或者没有其他用户,则按照浏览数降序返回。 2. 通过pearson算法来计算用户之间的距离,找到距离最近的N个用户。将这些用户中已打分的歌曲(且要推荐的用户未看过的部分)返回。 ### 基于item的推荐 1. 计算物品相似度矩阵: https://www.jianshu.com/p/27b1c035b693 2. 遍历当前用户已打分的item,计算和未打分的item的相似距离。 3. 对相似距离进行排序 返回 ## 主要实现的功能 1. 登录注册页面 2. 基于协同过滤的歌曲的分类,排序,搜索,打分,排序功能。 3. 基于协同过滤的周推荐和月推荐 fixed 1. 首页导航栏链接错误 2. 首页面为空 3. 登录注册页面 4. 推荐跳转登录 5. 周推荐用户没有评分时随机推荐 6. 按照收藏数量排序 7. 重新设计了 action 和UserAction model,拆分出了UserAction ## 歌曲模型 1. 浏览量 每次刷新页面的浏览数 2. 收藏量 user manytomany field 每个用户收藏一次 3. 评分 rate 每个用户评分一次 4. 在歌曲下面的评论加点赞功能 ## 安装运行方法 ## 安装依赖 1. 将项目导入pycharm, 在pycharm配置python解释器,3.7及以下都可以。可以通过conda或者其他的虚拟环境来安装 2. 打开终端 输入pip install -r requirements.txt 若提示无pip。去下载get-pip.py 运行python get-pip.py 3. 在pip安装过程中如果报错C++ 14依赖问题。则安装c++依赖工具。找不到找我要。如果安装速度过慢,请更换国内镜像https://blog.csdn.net/chenghuikai/article/details/55258957 4. 安装成功后,进入运行阶段 ## 运行 1. 运行服务器: python manage.py runserver
本项目是一个简单django问卷调查系统,拥有完善的权限机制,以及答卷功能,可扩展性强,用户相关登录、退出、改密等功能均在users应用中,course应用为问卷应用,采用vue+django+sqlite3开发,但后期可配置连接到MySQL数据库! 非常适合大学生作为毕业项目进行改造! 上线部署请自行参考django官方文档!如有部署需求可单独咨询报价! 调试步骤: 1、创建虚拟环境,这里只以python默认创建虚拟环境的方式说明 python3 -m venv venv 2、激活虚拟环境 win: venv\Script\activate linux: source venv/bin/activate 3、安装依赖 pip3 install -r requirements.txt 4、启动调试服务器 python3 manage.py runserver 前台所有页面默认均需要登录后方可访问 学生登录后直接进入选择问卷页面,选择问卷确认后直接进入问卷答题页面,成功跳转到个人中心,失败会有失败提示,问卷所有选项在没提交问卷之前均可修改,提交后选项不能修改,一个问卷一个学生只能作答一次,不能重复作答! 老师登录后跳转到个人中心,可修改密码,查看问卷结果,通过问卷结果的学生名可访问该问卷该学生的作答详细信息! 前台登录功能,学生、老师、超管均可登录,登录成功根据角色类型显示不同页面对应不同操作。 超管前台登录权限和老师基本一致,只是查看问卷结果为全员的问卷结果,而老师只能查看自己名下关联课程的问卷! 超管后台登录拥有所有权限,可在后台导出问卷结果及课程详情结果,格式为csv! 超管拥有批量导入用户信息权限! 超管可在后台修改任何用户的密码! 学生及教师均可在前台修改密码、姓名和用户名, 姓名和用户名修改时默认显示在修改框! 超管后台功能列表 用户管理 - 学生、教师信息增删改查! 开课时间 - 【增删改查】添加课程之前必须设置,因为在添加课程是需要选择开课时间,依赖该项! 课程管理 - 【增删改查】添加课程,课程需关联老师及开课时间,请提前创建! 问题管理 - 【增删改查】问题维度已经内置直接选择,问题、权重可修改,问题选项在对应的问题下添加,请注意选择选项多对应的选项号! 问卷管理 - 【增删改查】问卷可多选题库,关联教师,关联课程,请提前创建! 问卷结果 - 【管理员可删除】 可批量导出,可按课程及教师筛选查看! 课程结果 - 课程列表依赖添加的课程,已经有学生答题的课程,在删除课程前需谨慎,会导致之前的结果无法查看! 超管导入用户数据地址:http://127.0.0.1:8000/course/loaddata/user/ 用户数据录入说明: 老师和学生录入信息字段基本一致,id[值唯一]、username[值唯一]、password、code[值唯一,并且不能以0开头]为必填。 user_type字段为用户类型,需要在导入前指明用户类型。【学生类型:XS】【教师类型: TC】【超管类型:CG】。 dept字段为学院类型,因为系统已经固定了几个学院选项,所以不能随意填写,需要与选项中的对应。 # 选项类型 DEPT = ( ('计算机科学学院', '计算机科学学院'), ('文学院', '文学学院'), ('外国语学院', '外国语学院'), ('数学学院', '数学学院'), ) code字段为老师或学生的学号,必须唯一,也是必填项,不能以0开始,不能以0开始,不能以0开始,否则编辑信息不可用excel,只能用txt文本管理器打开编辑! 项目根目录有个01.csv的文件为导入用户信息模板,里边录入的几个用户不能删除,除id之外,其余均可修改, id可以从2开始,1的id是超级管理员的id,可以剔除在外!【目前超管的信息已经在文件中,如果系统创建了超管之后再去导入,文件中的超管id=1的信息会被覆盖】 【文件编码格式必须为: 【CSV UTF-8(逗号分割) 】的.csv文件】 前台登录地址:http://127.0.0.1:8000/users/login/ 后台登录地址:http://127.0.0.1:8000/admin/ 学生测试账户: 账号:studentA 密码:123456 教师测试账户: 账号:teachA 密码:123456 超级管理员: 账号:admin 密码:admin123zxc

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值