Vue+Django项目部署
本地项目配置
1 复制 luffy/settings/dev.py为prop.py
修改luffy/settings/prop.py中以下几项
(1) allow_hosts
ALLOWED_HOSTS = [
'api.youdomain.com',
]
(2) 跨域白名单
CORS_ORIGIN_WHITELIST = (
# 前端域名
"www.youdomain.com",
# 后端api接口域名
"api.youdomain.com"
)
(3) 支付宝电脑网站支付配置信息
ALIPAY_APPID = "xxxxxxx"
APP_NOTIFY_URL = None
ALIPAY_DEBUG = True
# APIPAY_GATEWAY="https://openapi.alipay.com/gateway.do"
APIPAY_GATEWAY = "https://openapi.alipaydev.com/gateway.do"
ALIPAY_RETURN_URL = "http://www.youdomain.com/success"
ALIPAY_NOTIFY_URL = "http://api.youdomain.com:8000/payments/success"
2 修改luffy/wsgi.py文件
第14行
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "luffy.settings.prop")
3 修改manage.py文件
不改也可以,为了在服务器测试方便一点
第6行
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "luffy.settings.prop")
4 导出pip安装的包列表
pip freeze > docs/requirements.txt
5 收集静态文件
python manage.py collectstatic
6 提交并推送
git add .
git commit -m "项目完成"
git push -u origin master
7 前端配置修改 src/settings.js
设置后端服务器域名和端口
Host:"http://api.youdomain.com:80",
8 构建
npm run build
9 提交并推送
git add .
git commit -m "项目完成"
git push -u origin master
服务器上配置
1 安装所需软件
yum install python36-pip.noarch python36.x86_64 python36-devel.x86_64 nginx git gcc -y
pip3 install virtualenv -i https://pypi.douban.com/simple
注意:uwsig 最好使用pip方式安装
pip3 install uwsgi -i https://pypi.douban.com/simple
2 mysql数据库相关配置
(1)安装mysql
yum install mysql-server -y
或者使用容器
设置密码以及初始化配置请自行解决
(2) 启动数据库
systemctl start mysqld
(3)新建数据库luffy
create database luffy;
(4) 导入数据
mysql -uroot -pmysql luffy < luffy.sql
也可配置好django后生 python manage.py makemigrations 成数据库
3 redis 安装与配置
可以使用 yum 安装并启动 ,简单粗暴!
为了使用最新版,我采用解压安装
那种方式你喜欢就好!
(1) 下载
cd /opt/
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
(2) 解压并安装
tar -xf redis-5.0..tar.gz
cd /opt/redis-5.0.
make && make install
(3)修改配置文件
vim redis.conf
69行 bind 127.0.0.1
改为 bind 0.0.0.0
(4)启动Redis,并放置在后台
nohup redis-server redis.conf &
4 拉取前端项目
cd /opt/
git clone https://gitee.com/SunHarvey/luffyweb.git
前端项目路径为 /opt/luffyweb/
只有 /opt/luffyweb/dist/ 文件有用,
dist用作前端根目录,其他的不要亦可!
5 创建虚拟环境
(1)创建虚拟环境
cd /opt/
virtualenv luffy
即就是虚拟环境路径为 /opt/luffy/
cd /opt/luffy/
(2)激活虚拟环境
source /opt/luffy/bin/activate
(3)拉取后端项目
git clone https://gitee.com/SunHarvey/luffy.git
注:项目根路径为 /opt/luffy/luffy/
cd luffy
可以看到以下文件
docs luffy manage.py scripts static
(4)pip安装所需包
我的 django 使用的是2.0版本,不需要因为 pymysql 报错该源码
删除 luffy/docs/requirements.txt中 xadmin中的那行
pip3 install https://codeload.github.com/sshwsfc/xadmin/zip/django2
pip3 instal -r /opt/luffy/luffy/docs/requirements.txt
(5)用 runserver 启动django项目看看是否正常
记得启动MySQL数据库和redis
python manage.py runserver
没有报错的话继续,报错了就根据提示排除吧
6 uwsgi配置
(1) uwsgi.ini 配置内容如下
vim /opt/luffy/luffy/uwsgi.ini
[uwsgi]
# 设置uwsgi 启动用户,不设置也可,会有警告,也可以设置为当前登录的用户
uid = nginx
gid = nginx
#使用nginx连接时使用,Django程序所在服务器地址
socket=127.0.0.1:
#直接做web服务器使用,Django程序所在服务器地址
#http=0.0.0.0:
#项目目录
chdir=/opt/luffy/luffy
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=luffy/wsgi.py
# 进程数
processes=
# 线程数
threads=
# uwsgi服务器的角色
master=True
# 存放进程编号的文件
pidfile=uwsgi.pid
# 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。我们以前的runserver是依赖终端的
daemonize=uwsgi.log
# 指定依赖的虚拟环境
virtualenv=/opt/luffy/
# clear environment on exit #退出时清除环境
vacuum = true
(2) 修改文件所有者, 如果用root启动可忽略此步骤
chown -R nginx.nginx /opt/luffy/luffy/
也可以把nginx换成当前登录用户的用户名,其它用户也可以。
(3) 启动uwsgi , 记得启动MySQL数据库和redis
uwsgi --ini /opt/luffy/luffy/uwsgi.ini
7 nginx配置
(1) 创建配置文件
vim /etc/nginx/conf.d/your.conf
# 设置后端uwsgi服务器,可写多个用作负载均衡
upstream luffy {
server 127.0.0.1:;
}
# 后端 api服务器配置
server {
listen ;
server_name api.youdomain.com;
location / {
include uwsgi_params;
uwsgi_pass luffy;
}
# 加载css、js文件
location ~ .*\.(css|js)$ {
root /opt/luffy/luffy/;
}
} # 前端页面服务器配置
server {
listen ;
# 不要怀疑,你没有看错!nginx的80端口可以启动 n 个域名!
server_name youdomain.com www.youdomain.com;
location / {
# /opt/luffyweb/dist/ 为npm run build生成的文件夹
root /opt/luffyweb/dist/;
index index.html;
try_files $uri $uri /index.html;
}
}
这是最基本配置,其它优化配置就不再赘述!
(2)检查nginx配置文件语法
nginx -t
(3) 启动nginx
systemctl start nginx
Vue+Django项目部署的更多相关文章
- 直接运行vue+django项目
直接运行vue+django项目 下载前后端代码 wget https://files.cnblogs.com/files/pyyu/luffy_boy.zip wget https://files. ...
- Django项目部署在Linux下以进程方式启动
Django项目部署在Linux下以进程方式启动 这是一篇关于如何在linux下,以后台进程的方式运行服务,命令改改基本上就通用了. 开发完Django项目后,需要把项目部署到linux环境下.当然, ...
- 使用gunicorn将django项目部署到生产环境的子目录下,在nginx后端获取客户真实IP地址
生产环境有时,并不是为了一个项目而存在的.毕竟,域名是比较稀有的. 今天遇到这个问题,解决了.作个记录. 并且,如果将django项目部署在Nginx后面,那如何获取用户真实的IP地址呢? 下面就来解 ...
- Django项目部署(django+guncorn+virtualenv+nginx)
一.说明 为了django项目部署到生产环境上,能够稳定的运行,且能够同时指出http和https的访问,对django的部署进行了一些研究,决定采用django + gunicorn + virtu ...
- django项目部署过程
django项目部署过程 1.上传代码 用git或者其他工具,如scp 代码上传后保证每个应用下的migrations文件夹里只有一个__init__.py文件,自己的迁移文件不要上传上来,具体的gi ...
- 如何把vue.js项目部署到服务器上
如何把vue.js项目部署到服务器上面,我用的是tomcat服务器 1-改一下config/index.js文件,如下图,把assetsPublicPath: './', productionSour ...
- 如何将你的 Vue.js 项目部署在云开发静态托管之上
云开发静态托管是云开发提供的静态网站托管的能力,静态资源(HTML.CSS.JavaScript.字体等)的分发由腾讯云对象存储 COS 和拥有多个边缘网点的腾讯云 CDN 提供支持. 在云开发静态托 ...
- Windows下django项目部署 通过Apache2.4+mod_wsgi
经过几天踩坑,记录在Windows10下通过Apache2.4部署Django项目的过程 运行环境: 先说下环境,怎么安装倒是其次的,版本很重要,我是根据mod_wsgi的版本要求下载的各个版本(py ...
- 学习VirtualEnv和Nginx+uwsgi用于django项目部署
以下叙述中用到的操作系统:Linux CentOS 6.X. 最近几天了解一下VirtualEnv,Apache+Daemon mode,Nginx+uwsgi的概念,并且在项目中实验性部署了一下(目 ...
随机推荐
- 利用c# 多屏显示
公司搞了一个电视墙,要显示不同内容,于是买了一个多接口显卡(现在看来这个方案不是太好,但非常省钱) 要打开的就是几个网页,但要自己手工拖到不同电视上,非常麻烦 于是查了一下资料,发现可以用代码实现,说 ...
- C语言设计模式
一 .C语言和设计模式(继承.封装.多态) C++有三个最重要的特点,即继承.封装.多态.我发现其实C语言也是可以面向对象的,也是可以应用设计模式的,关键就在于如何实现面向对象语言的三个重要属性. ( ...
- 【linux基础】如何配置ubuntu系统为静态IP地址
前言 连接远程server重启的时候发现IP发生变化,影响远程连接,此时,需要将server配置为静态IP. 系统环境 ubuntu16.04 操作过程 1. 设置IP和DNS command sud ...
- 【ARM-Linux开发】ARM嵌入式设备Linux系统启动步骤和方式
1). 简介 本文简单介绍ARM嵌入式设备基于嵌入式Linux操作系统时候的启动步骤和启动方式, 区别与X86平台,ARM平台下并没有一个标准的启动步骤,不同ARM SoC都会使用各自定义的boot ...
- javascript异步上传压缩图片并立即显示图片
javascript异步上传压缩图片并立即显示图片<pre><!doctype html><html><head><meta charset=&q ...
- JVM知识点总览-高级Java工程师面试必备
jvm 总体梳理 jvm体系总体分四大块: 类的加载机制 jvm内存结构 GC算法 垃圾回收 GC分析 命令调优 当然这些知识点在之前的文章中都有详细的介绍,这里只做主干的梳理 这里画了一个思维导图, ...
- 手撕面试官系列(四 ):MongoDB+Redis 面试专题
MongoDB (面试题+答案领取方式见侧边栏) 你说的 NoSQL 数据库是什么意思?NoSQL 与 RDBMS 直接有什么区别?为什么要使用和不使用NoSQL 数据库?说一说 NoSQL 数据 ...
- spring cloud各个版本之间的区别
最近公司在使用spring cloud进行开发,对于spring cloud版本号一直有疑惑. 那个版本在前?那个版本在后? 那个版本是最新的? 一.常见版本号说明 举个瓜:2.0.3 RELEASE ...
- Kafka理解
1. 引言 最近使用Kafka做消息队列时,完成了基本的消息发送与接收,已上线运行.一方面防止出现Bug时自己不能及时定位问题,一方面网上的配置可能还可以更加优化,决定去了解下Kafka. 2. 配置 ...
- 24H玩转 Grafana 被工程师称相当专业,如何做到?
国庆假期发生了两件小事,其一是我默默度过 35 周岁生日,其二是玩了下grafana `并在节后第一天被工程师 M 称赞:相当专业. 1.我为什么要玩 grafana 呢? 数月前我提交了一份数据后台 ...