路飞学城django代码
https://files.cnblogs.com/files/pyyu/luffy_boy.zip
vue代码
https://files.cnblogs.com/files/pyyu/07-luffy_project_01.zip

一、将代码搞到服务器上

在linux上直接下载
wget https://files.cnblogs.com/files/pyyu/luffy_boy.zip
wget https://files.cnblogs.com/files/pyyu/07-luffy_project_01.zip

在window上下载,通过lrzsz,或者xftp传输到linux服务器上

二、先从前端vue搞起

要在服务器上,编译打包vue项目,必须得有node环境

下载node二进制包,此包已经包含node,不需要再编译
wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz
解压缩
tar -zxvf node-v8.6.0-linux-x64.tar.gz
进入node文件夹
[root@web02 opt]# cd node-v8.6.0-linux-x64/
[root@web02 node-v8.6.0-linux-x64]# ls
bin  CHANGELOG.md  etc  include  lib  LICENSE  README.md  share
[root@web02 node-v8.6.0-linux-x64]# ls bin
node  npm  npx
[root@web02 node-v8.6.0-linux-x64]# ./bin/node -v
v8.6.0
[root@web02 node-v8.6.0-linux-x64]# ./bin/npm -v
5.3.0

将node命令,添加至linux环境变量,修改/etc/profile,写入

PATH=$PATH:/opt/node-v8.6.0-linux-x64/bin

读取文件,生效PATH

source /etc/profile

测试path

[root@web02 node-v8.6.0-linux-x64]# node -v
v8.6.0
[root@web02 node-v8.6.0-linux-x64]# npm -v
5.3.0

node环境有了,安装node模块,以及打包node项目

进入vue源码目录
cd 07-luffy_project_01/
安装vue模块,默认去装package.json的模块内容,如果出现模块安装失败,手动再装
npm install 此时注意,你本地写的vue代码,接口很可能连接的服务器地址有问题,注意Axios.POST提交的地址,一定得发送给django应用(如果用了nginx,就发送给nginx的入口端口)
超哥这里为了试验方便,将vue项目和django项目放在了一台服务器,通过nginx反向代理功能(8000端口),转发vue请求给django(9000)准备编译打包vue项目,替换配置文件所有地址,改为服务器地址
sed -i 's/127.0.0.1/192.168.119.12/g' /opt/07-luffy_project_01/src/restful/api.js

确保vue的route模式是history路径:opt/luffy/07-luffy_project_01/src/router/index.js

export default new Router({
linkActiveClass:'is-active',
mode: 'history',//改成history模式

此时打包vue项目,生成一个dist静态文件夹
npm run build
检查dist文件夹
[root@web02 07-luffy_project_01]# ls dist/
index.html static

至此vue代码就结束了,只需要让nginx配置,找到vue的index.html首页文件即可

nginx这里不做解释,编译安装好即可

server {     #用户访问域名或者ip,默认是nginx的80端口listen       80;server_name  192.168.119.12;     #url匹配  /   也就是请求地址是192.168.119.12时,进入此location,返回vue的dist下index.html路飞学城首页location / {root /opt/07-luffy_project_01/dist;index index.html;}}

三、配置后端代码,解决虚拟环境,保证项目干净隔离

激活虚拟环境venv1,在虚拟环境下,安装路飞项目所需的依赖模块

[root@web02 opt]# cat requirements.txt
certifi==2018.11.29
chardet==3.0.4
crypto==1.4.1
Django==2.1.4
django-redis==4.10.0
django-rest-framework==0.1.0
djangorestframework==3.9.0
idna==2.8
Naked==0.1.31
pycrypto==2.6.1
pytz==2018.7
PyYAML==3.13
redis==3.0.1
requests==2.21.0
shellescape==3.4.1
urllib3==1.24.1
uWSGI==2.0.17.1

这个路飞代码数据库用的是sqllite,不需要配置数据库了

购物车用都的是redis,因此要启动服务器的redis-server服务端

redis-server /etc/redis.confps -ef|grep redis
redis-server *:6379

通过uwsgi启动路飞项目

[uwsgi]
# Django-related settings
# the base directory (full path)
chdir           = /opt/luffy_boy
# Django's wsgi file
module          = luffy_boy.wsgi
# the virtualenv (full path)
home            = /opt/venv1
# process-related settings
# master
master          = true
# maximum number of worker processes
processes       = 1
# the socket (use the full path to be safe
socket          = 0.0.0.0:9000
# clear environment on exit
vacuum          = true#后台运行uwsgidaemonize=yes

(venv1) [root@web02 opt]# uwsgi --ini luffy_boy/uwsgi.ini

四、配置nginx,此步重要

worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       80;server_name  192.168.119.12;location / {root /opt/07-luffy_project_01/dist;index index.html;    #这一条参数确保vue页面刷新时候,不会出现404页面      try_files $uri $uri/ /index.html;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}server {
listen       8000;server_name  192.168.119.12;location / {uwsgi_pass 0.0.0.0:9000;include /opt/nginx/conf/uwsgi_params;}location /static {alias /opt/static;
}
}
}

原理图

项目访问

测试账号密码

alex
alex3714

目前代码功能演示,演示流程:

  1. 登录alex账号
  2. 选择免费课程,django框架学习
  3. 添加课程到购物车,检查alex账号的购物车记录,添加成功后再redis有数据

转载于:https://www.cnblogs.com/xintiao-/p/10414110.html

vue+uwsgi+nginx部署路飞学城相关推荐

  1. 路飞学城Python-Day14

    转载:python之路-路飞学城-python-book [25.常用模块-logging模块详解] [26.常用模块-logging模块详解2] [27.常用模块-logging模块日志过滤和日志文 ...

  2. Python高级全栈开发实战 老男孩课程S16+路飞学城项目+女神串讲 Python全栈直通车课程

    python高级全栈开发实战 老男孩课程S16+路飞学城项目+女神串讲 Python全栈直通车课程 Python高级全栈开发实战老男孩课程,是可以帮助同学们从零基础开始到项目开发实战的全栈课程,内容非 ...

  3. 路飞学城之 luffy(1)

    目录 路飞学城之 luffy(1) 一.内容 二.内容大纲 小结 三.内容大纲 小结 四.内容大纲 自定义模态框 componses/Login.vue componses/Header.vue vu ...

  4. 路飞学城1之课程与课程详细

    前端vue import Vue from 'vue' import App from './App.vue' import router from './router' import store f ...

  5. 路飞学城python全栈开发_python 全栈开发,Day98(路飞学城背景,django ContentType组件,表结构讲解)...

    昨日内容回顾 1. 为什么要做前后端分离?-前后端交给不同的人来编写,职责划分明确.-API (IOS,安卓,PC,微信小程序...)-vue.js等框架编写前端时,会比之前写jQuery更简单快捷. ...

  6. 路飞学城Python-Day46

    16-如何正确的使用类选择器及总结 一般情况下尽量不要去使用id选择器,因为id选择器有很大的限制性,id一般都是JS配合使用的,类选择器都是和CSS配合使用的,特殊性情况可以用id选择器. 类的使用 ...

  7. django+uwsgi+nginx部署

    最近线上部署运维工单系统,使用django+uwsgi+nginx部署,发现这篇文章,很详细,觉得不错,转载一下: 写了那么长时间的django,一直没跟nginx结合一下,访问的时候老是得加端口号, ...

  8. 路飞学城—Python爬虫实战密训班 第三章

    路飞学城-Python爬虫实战密训班 第三章 一.scrapy-redis插件实现简单分布式爬虫 scrapy-redis插件用于将scrapy和redis结合实现简单分布式爬虫:- 定义调度器- 定 ...

  9. Django扩展 —— uwsgi+nginx部署

    -- uwsgi+nginx部署(django) -- 服务器环境配置 -- 导出虚拟环境的所有包 pip freeze > list.txt -- 通过ftp软件将项目以及list.txt文件 ...

最新文章

  1. 兴趣部落的 Git 迁移实践
  2. 在 PHP 中养成 7 个面向对象的好习惯
  3. 《高质量java程序设计》读书笔记之----异常处理(1)
  4. python链表中删除一个节点数据_python实现单链表中删除倒数第K个节点的方法
  5. [转]Spring中property-placeholder的使用与解析
  6. 电脑配置Java环境变量之后,在cmd中仍然无法识别
  7. php怎么实现显示gif图片,利用PHP怎么对gif图片进行判断
  8. Go语言实战-golang操作Mongodb
  9. 用JAVA做一个简单的画图软件
  10. java有理数类的封装_java-有理数类的设计
  11. js在ie下打开对话窗口的方式
  12. 设置deepin国内源
  13. 发现了一个好网站.绝不是打广告,独乐乐不如众乐乐.
  14. 在VS中给源文件用文件夹分类/在VS中变更源文件路径
  15. 【时间处理】获取官方节假日数据的api接口,获取指定日期的节假日数据
  16. Sphinx(斯芬克斯的安装及使用)
  17. Linux下如何查看一个文件是否拥有软链接或硬链接文件?
  18. python sdklive2d_Unity使用Live2DSDK制作游戏(Demo制作1)
  19. 文科男生适合学计算机吗,大学文科有哪些专业(文科男生十大专业好)
  20. html 屏幕垂直居中显示,页面内容居中设置(水平居中与垂直居中)

热门文章

  1. Java实现学生管理系统(完整代码)
  2. 微信内打开的网页不能下载APP,微信无法打开浏览器访问指定页面的解决方案...
  3. Spring Boot学习笔记——Spring Boot与ActiveMQ的集成
  4. server 2008中新建AD域控制器
  5. [原创]关于设置linux中vim 显示行号
  6. 自己定义html中a标签的title提示tooltip
  7. Delphi WebService 的编写、调试、发布(IIS)、调用
  8. 重写Android系统自带Dialog
  9. 诗与远方:无题(十四)
  10. Linux上的Django项目,下载文件报错,编码格式错误解决