本地项目配置

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项目部署的更多相关文章

  1. 直接运行vue+django项目

    直接运行vue+django项目 下载前后端代码 wget https://files.cnblogs.com/files/pyyu/luffy_boy.zip wget https://files. ...

  2. Django项目部署在Linux下以进程方式启动

    Django项目部署在Linux下以进程方式启动 这是一篇关于如何在linux下,以后台进程的方式运行服务,命令改改基本上就通用了. 开发完Django项目后,需要把项目部署到linux环境下.当然, ...

  3. 使用gunicorn将django项目部署到生产环境的子目录下,在nginx后端获取客户真实IP地址

    生产环境有时,并不是为了一个项目而存在的.毕竟,域名是比较稀有的. 今天遇到这个问题,解决了.作个记录. 并且,如果将django项目部署在Nginx后面,那如何获取用户真实的IP地址呢? 下面就来解 ...

  4. Django项目部署(django+guncorn+virtualenv+nginx)

    一.说明 为了django项目部署到生产环境上,能够稳定的运行,且能够同时指出http和https的访问,对django的部署进行了一些研究,决定采用django + gunicorn + virtu ...

  5. django项目部署过程

    django项目部署过程 1.上传代码 用git或者其他工具,如scp 代码上传后保证每个应用下的migrations文件夹里只有一个__init__.py文件,自己的迁移文件不要上传上来,具体的gi ...

  6. 如何把vue.js项目部署到服务器上

    如何把vue.js项目部署到服务器上面,我用的是tomcat服务器 1-改一下config/index.js文件,如下图,把assetsPublicPath: './', productionSour ...

  7. 如何将你的 Vue.js 项目部署在云开发静态托管之上

    云开发静态托管是云开发提供的静态网站托管的能力,静态资源(HTML.CSS.JavaScript.字体等)的分发由腾讯云对象存储 COS 和拥有多个边缘网点的腾讯云 CDN 提供支持. 在云开发静态托 ...

  8. Windows下django项目部署 通过Apache2.4+mod_wsgi

    经过几天踩坑,记录在Windows10下通过Apache2.4部署Django项目的过程 运行环境: 先说下环境,怎么安装倒是其次的,版本很重要,我是根据mod_wsgi的版本要求下载的各个版本(py ...

  9. 学习VirtualEnv和Nginx+uwsgi用于django项目部署

    以下叙述中用到的操作系统:Linux CentOS 6.X. 最近几天了解一下VirtualEnv,Apache+Daemon mode,Nginx+uwsgi的概念,并且在项目中实验性部署了一下(目 ...

随机推荐

  1. Java学习-054-Mybatis IN查询,通过 foreach 获取列表数据

    通过如下语句查询商品订单信息: ,,,) 在 Mapper.java 中定义如下接口: List<GoodsOrder> findGoodsOrderByIds(String ids); ...

  2. vue aes

    npm install crypto-js import CryptoJS from "crypto-js/crypto-js"; const KEY = CryptoJS.enc ...

  3. android文件分享在android7.0以上版本报错的解决方案

    最近在使用蓝牙进行文件分享时,出现了一个奇怪的问题.同样的代码在android5.1上可以顺利运行,但是在android7.0上就运行失败.出现如下的错误: Caused by: android.os ...

  4. JKS转PFX

    通过jks2pfx工具 请下载:JKS2PFX转换工具. 将压缩包解开到 c:\jks2pfx 目录下, 运行以下命令:JKS2PFX <导出文件名> [Java Runtime的目录]备 ...

  5. 发布微信小程序体验版

    小程序这么火,一直没有做过.因为公司有个业务需要做小程序就顺带学习了一把. 1)本次是采用<微信开发者工具 Stable v1.02.1904090>进行的开发: 2)前端使用的是微信官方 ...

  6. javascript之this、new、apply和call详解

    this指针的原理是个很复杂的问题,如果我们从javascript里this的实现机制来说明this,很多朋友可能会越来越糊涂,因此本篇打算换一个思路从应用的角度来讲解this指针,从这个角度理解th ...

  7. 关于C#编写x86与x64程序的分析

    电脑硬件CPU可以分为x86与x64, x86的机器只能安装32位的操作系统,如XP, WIN7_86, x64的机器既可以安装32位的系统,又可以安装64位的系统,只是在x64的机器上安装32位的系 ...

  8. Kubernetes平台环境搭建

    软件 版本 Linux操作系统 CentOS7.4 Kubernetes 1.12 Docker 18.xx-ce Etcd 3.x Flannel 0.10 角色 IP 组件 推荐配置 master ...

  9. 最常见的Java面试题及答案汇总(四)

    反射 57. 什么是反射? 反射主要是指程序可以访问.检测和修改它本身状态或行为的一种能力 Java反射: 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能 ...

  10. kafka的分区

    分区会均匀的分配到不同的broke上,即不同的机器上.