经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Django » 查看文章
Vue+Django项目部署详解
来源:jb51  时间:2019/5/30 9:31:45  对本文有异议

本地项目配置

1 复制 luffy/settings/dev.py为prop.py

修改luffy/settings/prop.py中以下几项

(1) allow_hosts

  1. ALLOWED_HOSTS = [
  2.   'api.youdomain.com',
  3. ]

(2) 跨域白名单

  1. CORS_ORIGIN_WHITELIST = (
  2.   # 前端域名
  3.   "www.youdomain.com",
  4.   # 后端api接口域名
  5.   "api.youdomain.com"
  6. )

(3) 支付宝电脑网站支付配置信息

  1. ALIPAY_APPID = "xxxxxxx"
  2. APP_NOTIFY_URL = None
  3. ALIPAY_DEBUG = True
  4. # APIPAY_GATEWAY="https://openapi.alipay.com/gateway.do"
  5. APIPAY_GATEWAY = "https://openapi.alipaydev.com/gateway.do"
  6. ALIPAY_RETURN_URL = "http://www.youdomain.com/success"
  7. ALIPAY_NOTIFY_URL = "http://api.youdomain.com:8000/payments/success"

2 修改luffy/wsgi.py文件

第14行

  1. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "luffy.settings.prop")

3 修改manage.py文件

不改也可以,为了在服务器测试方便一点

第6行

  1. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "luffy.settings.prop")

4 导出pip安装的包列表

  1. freeze > docs/requirements.txt

5 收集静态文件

  1. python manage.py collectstatic

6 提交并推送

  1. git add .
  2. git commit -m "项目完成"
  3. git push -u origin master

7 前端配置修改 src/settings.js

设置后端服务器域名和端口

8 构建

  1. npm run build

9 提交并推送

  1. git add .
  2. git commit -m "项目完成"
  3. git push -u origin master

服务器上配置

1 安装所需软件

  1. yum install python36-pip.noarch python36.x86_64 python36-devel.x86_64 nginx git gcc -y
  2. pip3 install virtualenv -i https://pypi.douban.com/simple

注意:uwsig 最好使用pip方式安装

  1. pip3 install uwsgi -i https://pypi.douban.com/simple

2 mysql数据库相关配置

(1)安装mysql

  1. yum install mysql-server -y

或者使用容器

设置密码以及初始化配置请自行解决

(2) 启动数据库

  1. systemctl start mysqld

(3)新建数据库luffy

  1. create database luffy;

(4) 导入数据

  1. mysql -uroot -pmysql luffy < luffy.sql

3 redis 安装与配置

可以使用 yum 安装并启动 ,简单粗暴!

为了使用最新版,我采用解压安装

那种方式你喜欢就好!

(1) 下载

  1. cd /opt/
  2. wget http://download.redis.io/releases/redis-5.0.5.tar.gz

(2) 解压并安装

  1. tar -xf redis-5.0.5.tar.gz
  2. cd /opt/redis-5.0.5
  3. make && make install

(3)修改配置文件

vim redis.conf
69行 bind 127.0.0.1
改为 bind 0.0.0.0

(4)启动Redis,并放置在后台

  1. nohup redis-server redis.conf &

4 拉取前端项目

  1. cd /opt/
  2. git clone https://gitee.com/SunHarvey/luffyweb.git

前端项目路径为 /opt/luffyweb/

只有 /opt/luffyweb/dist/ 文件有用 ,

dist用作前端根目录,其他的不要亦可!

5 创建虚拟环境

(1)创建虚拟环境

  1. cd /opt/
  2. virtualenv luffy

即就是虚拟环境路径为 /opt/luffy/

  1. cd /opt/luffy/

(2)激活虚拟环境

  1. source /opt/luffy/bin/activate

(3)拉取后端项目

  1. git clone https://gitee.com/SunHarvey/luffy.git

注:项目根路径为 /opt/luffy/luffy/

  1. cd luffy

可以看到以下文件

  1. docs luffy manage.py scripts static

(4)pip安装所需包

我的 django 使用的是2.0版本,不需要因为 pymysql 报错该源码

删除 luffy/docs/requirements.txt中 xadmin中的那行

  1. pip3 install https://codeload.github.com/sshwsfc/xadmin/zip/django2
  2. pip3 instal -r /opt/luffy/luffy/docs/requirements.txt

(5)用 runserver 启动django项目看看是否正常

记得启动MySQL数据库和redis

  1. python manage.py runserver

没有报错的话继续,报错了就根据提示排除吧

6 uwsgi配置

(1) uwsgi.ini 配置内容如下

  1. vim /opt/luffy/luffy/uwsgi.ini
  2. [uwsgi]
  3. # 设置uwsgi 启动用户,不设置也可,会有警告,也可以设置为当前登录的用户
  4. uid = nginx
  5. gid = nginx
  6. #使用nginx连接时使用,Django程序所在服务器地址
  7. socket=127.0.0.1:8000
  8. #直接做web服务器使用,Django程序所在服务器地址
  9. #http=0.0.0.0:8080
  10. #项目目录
  11. chdir=/opt/luffy/luffy
  12. #项目中wsgi.py文件的目录,相对于项目目录
  13. wsgi-file=luffy/wsgi.py
  14. # 进程数
  15. processes=1
  16. # 线程数
  17. threads=2
  18. # uwsgi服务器的角色
  19. master=True
  20. # 存放进程编号的文件
  21. pidfile=uwsgi.pid
  22. # 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。我们以前的runserver是依赖终端的
  23. daemonize=uwsgi.log
  24. # 指定依赖的虚拟环境
  25. virtualenv=/opt/luffy/
  26. # clear environment on exit #退出时清除环境
  27. vacuum = true

(2) 修改文件所有者, 如果用root启动可忽略此步骤

  1. chown -R nginx.nginx /opt/luffy/luffy/

也可以把nginx换成当前登录用户的用户名,其它用户也可以。

(3) 启动uwsgi , 记得启动MySQL数据库和redis

  1. uwsgi --ini /opt/luffy/luffy/uwsgi.ini

7 nginx配置

(1) 创建配置文件

  1. vim /etc/nginx/conf.d/your.conf
  2. # 设置后端uwsgi服务器,可写多个用作负载均衡
  3. upstream luffy {
  4.   server 127.0.0.1:8000;
  5. }
  6. # 后端 api服务器配置
  7. server {
  8.   listen 80;
  9.   server_name api.youdomain.com;
  10.   location / {
  11.     include uwsgi_params;
  12.     uwsgi_pass luffy;
  13.   }
  14.   # 加载css、js文件
  15.   location ~ .*\.(css|js)$ {
  16.     root /opt/luffy/luffy/;
  17.     }
  18. }
  19.  
  20. # 前端页面服务器配置
  21. server {
  22.   listen 80;
  23.   # 不要怀疑,你没有看错!nginx的80端口可以启动 n 个域名!
  24.   server_name youdomain.com www.youdomain.com;
  25.   location / {
  26.     # /opt/luffyweb/dist/ 为npm run build生成的文件夹
  27.     root /opt/luffyweb/dist/;
  28.     index index.html;
  29.     try_files $uri $uri /index.html;
  30.   }
  31. }
  32.  

这是最基本配置,其它优化配置就不再赘述!

(2)检查nginx配置文件语法

  1. nginx -t

(3) 启动nginx

  1. systemctl start nginx

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号