vue+django前后端项目部署
一.python3的安装
1.安装python前的库环境:
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y 2.下载,解压安装源码包
wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tar.xz
xz -d Python-3.6.9.tar.xz
tar -xf Python-3.6.9.tar 3.编译且安装,进入python源码包目录
./configure --prefix=/opt/python3/
make && make install 4.配置python3环境变量
在/etc/profile最后一行添加
export PATH=/opt/python3/bin:$PATH
然后
source /etc/profile
二:虚拟环境管理virtualenvwrapper的安装及创建
1.指定豆瓣加速器安装virtualenvwrapper,当然直接安装也可以
pip3 install -i https://pypi.douban.com/simple virtualenvwrapper 2.修改~/.bashrc,每次开机加载virtualevnwrapper,当然配置在/etc/profile也没问题
写入变量
export WORKON_HOME=~/Envs #设置virtualenv的统一管理目录
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' #添加virtualenvwrapper的参数,生成干净隔绝的环境
export VIRTUALENVWRAPPER_PYTHON=/opt/python3/bin/python3.6 #指定python解释器
source /opt/python3/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本 3.新建一个虚拟环境 my_django_first_project (这会在 ~/Envs 中创建 my_django_first_project 文件夹)
mkvirtualenv my_django_first_project 备注下virtualenv相关命令(下面的不需要执行):
删除虚拟环境
rmvirtualenv my_django_first_project
激活虚拟环境
workon my_django_first_project
也可以手动停止虚拟环境
deactivate my_django_first_project
列举所有的环境
lsvirtualenv
三:Vue部署(在my_django_first_project虚拟环境上部署)
1.xftp上传前后端代码到服务器 2.准备node打包环境,下载node二进制包,此包已经包含node,不需要再编译
wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz 3.解压缩node包
tar -zxvf node-v8.6.0-linux-x64.tar.gz 4.配置环境变量,修改/etc/profile,可以直接使用npm和node命令
PATH=$PATH:/opt/node-v8.6.0-linux-x64/bin 5.检测node和npm
node -v
npm -v 6.安装vue项目所需的包
cd /opt/software/vue_project
输入npm install,完成之后再接着输入 7.准备编译打包vue项目,替换配置文件所有地址,改为服务器地址
sed -i 's/127.0.0.1/xxx.xxx.xxx.xxx/g' /opt/software/vue_project/src/restful/api.js 8.确保vue的route模式是history
/opt/software/vue_project/src/router/index.js下mode: 'history',//改成history模式 9.npm run build 打包生成一个 dist 静态文件目录,整个项目的前端内容和index.html都在这里了 5.等待nginx加载这个 dist文件夹
四:部署后端代码所需的环境
1.激活虚拟环境
workon my_django_first_project 2.通过一条命令,导出本地的所有软件包依赖
pip3 freeze > requirements.txt 3.将这个requirements.txt 传至到服务器,在服务器的新虚拟环境中,安装这个文件,就能安装所有的软件包了
pip3 install -r requirements.txt 4.准备uwsgi 支持高并发的启动python项目(注意uwsgi不支持静态文件的解析,必须用nginx去处理静态文件)
1.安装uwsgi
pip3 install -i https://pypi.douban.com/simple uwsgi 2.学习uwsgi的使用方法(注:简单启动可以用下面的,项目启动一般用配置文件启动)
通过uwsgi启动一个python web文件
uwsgi --http :8000 --wsgi-file testuwsgi.py
--http 指定http协议
--wsgi-file 指定一个python文件 通过uwsgi启动django项目,并且支持热加载项目,不重启项目,自动生效新的后端代码 uwsgi --http :8000 --module django_project.wsgi --py-autoreload=1 --module 指定找到django项目的wsgi.py文件
--py-autoreload=1 热加载 3.使用uwsgi的配置文件,启动项目
1.创建一个uwsgi.ini配置文件,写入参数信息
touch uwsgi.ini [uwsgi]
# Django-related settings
# the base directory (full path)
# 指定项目的绝对路径的第一层路径(很重要)
chdir = /opt/python_project/qkyAdmin # Django's wsgi file
# 指定项目的 wsgi.py文件
# 写入相对路径即可,这个参数是以chdir参数为相对路径
module = qkyAdmin.wsgi # the virtualenv (full path)
# 写入虚拟环境解释器的绝对路径(cdvirtualenv可以直接跳转进入,然后pwd可以查看绝对路径)
home = /root/Envs/my_django_first_project # process-related settings
# master
master = true # maximum number of worker processes
# 指定uwsgi启动的进程个数(机器配置好的话可以写多点)
processes = 5 # the socket (use the full path to be safe
#socket指的是:uwsgi启动一个socket连接,当你使用nginx+uwsgi的时候,使用socket参数
socket = 0.0.0.0:9000 # 这个参数是uwsgi启动一个http连接,当你不用nginx只用uwsgi的时候,使用这个参数
#http = 0.0.0.0:9000 # ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true # 后台启动
daemonize = yes 2.使用uwsgi配置文件启动项目
uwsgi --ini uwsgi.ini
五.supervisor进程管理工具安装及使用
前言: 将linux进程运行在后台的方法有哪些(扩展知识)
第一个,命令后面加上 & 符号
python manage.py runserver & 第二个 使用nohup命令
nohup python test.py 第三个使用进程管理工具 注意:由于supervisor在python3下无法使用,因此只能用python2去下载
2.安装supervisor,使用python2的包管理工具 easy_install (注意,此时要退出虚拟环境) 如果没有命令,使用以下命令,安装
yum install python-setuptools
easy_install supervisor 3.通过命令,生成一个配置文件,这个文件就是写入你要管理的进程任务
echo_supervisord_conf > /etc/supervisor.conf 4.编辑这个配置文件,写入操作 django项目的 命令
vim /etc/supervisor.conf
直接到最底行,写入以下配置
[program:django_project] # 是被管理的进程配置参数,django_project是进程的名称
command=/root/Envs/my_django_first_project/bin/uwsgi --ini /opt/python_project/qkyAdmin/qkyAdmin/uwsgi.ini 5.启动supervisord服务端,指定配置文件启动
supervisord -c /etc/supervisor.conf 6.通过supervisorctl管理任务
supervisorctl -c /etc/supervisor.conf 7.supervisor管理django进程的命令如下
supervisorctl直接输入命令会进入交互式的操作界面
> stop django_project
> start django_project
> status django_projecty
> status all # 停止全部 8.启动luffy的后端代码(这里需要修改settings下面的ALLOWED_HOSTS = ['*'],允许所有人访问)
start django_project
六.配置nginx步骤如下
1.编译安装nginx
2.nginx.conf配置如下 #第一个server虚拟主机是为了找到vue的dist文件, 找到dist下的index.html
server {
listen 80;
server_name 192.168.0.104; #当请求来自于 192.168.0.104/的时候,直接进入以下location,然后找到vue的dist/index.html
location / {
root /opt/python_project/lf_project/dist;
index index.html;
#这一条参数确保vue页面刷新时候,不会出现404页面
try_files $uri $uri/ /index.html;
} } #由于vue发送的接口数据地址是 192.168.0.104:8000 我们还得再准备一个入口server
server {
listen 8000;
server_name 192.168.0.104; #当接收到接口数据时,请求url是 192.168.0.104:8000 就进入如下location
location / {
#这里是nginx将请求转发给 uwsgi启动的 9000端口
uwsgi_pass 192.168.0.104:9000;
# include 就是一个“引入的作用”,就是将外部一个文件的参数,导入到当前的nginx.conf中生效
include /opt/nginx1-12/conf/uwsgi_params;
}
} 3.启动nginx
./sbin/nginx 直接启动
此时可以访问 192.168.0.104 查看页面结果 注明: mysql和redis根据自己的配置修改settings里面的地址即可
vue+django前后端项目部署的更多相关文章
- vue+django前后端分析解决csrf token问题
vue-resource post数据 参考:https://www.cnblogs.com/linxizhifeng/p/8995077.html 阅读django CsrfViewMiddlewa ...
- django前后端分离部署
部署静态文件: 静态文件有两种方式1:通过django路由访问2:通过nginx直接访问 方式1: 需要在根目录的URL文件中增加,作为入口 url(r'^$', TemplateView.as_vi ...
- LNMP环境+ 前后端项目部署+redis+redis扩展
LNMP 环境 (参照https://lnmp.org/install.html) wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz & ...
- Django前后端分离项目部署
vue+drf的前后端分离部署笔记 前端部署过程 端口划分: vue+nginx的端口 是81 vue向后台发请求,首先发给的是代理服务器,这里模拟是nginx的 9000 drf后台运行在 9005 ...
- docker-compose 部署 Vue+SpringBoot 前后端分离项目
一.前言 本文将通过docker-compose来部署前端Vue项目到Nginx中,和运行后端SpringBoot项目 服务器基本环境: CentOS7.3 Dokcer MySQL 二.docker ...
- 基于Vue的前后端分离项目实践
一.为什么需要前后端分离 1.1什么是前后端分离 前后端分离这个词刚在毕业(15年)那会就听说过,但是直到17年前都没有接触过前后端分离的项目.怎么理解前后端分离?直观的感觉就是前后端分开去做,即功 ...
- VUE开发(二)nginx配合vue来实现前后端分离部署
一.引言 由于本地是采用vue+spring boot实现的前后端分离项目,本机启动的时候先启动后场服务,再单独启动vue工程,然后可以实现全流程贯穿,但是我们要部署到服务器上的时候,一般都是打一个j ...
- Docker 部署前后端项目
Docker 部署前后端项目 平生不会相思,才会相思,便害相思. 简介:都是被逼的,从零开始一个Docker 部署九个微服务和三个前端项目.其中,这些服务需要用到Nacos.MySQL.Nginx.E ...
- gin+vue的前后端分离开源项目
该项目是gin+vue的前后端分离项目,使用gorm访问MySQL,其中vue前端是使用vue-element-admin框架简单实现的: go后台使用jwt,对API接口进行权限控制.此外,Web页 ...
随机推荐
- git-忽略不想提交到git的文件
在代码目录下建立.gitignore文件: .gitignore (用记事本另存可以保存这个名字),配置上要忽略的文件或者文件夹,然后提交到git 上就可以了.
- SpringCloud学习(六)分布式配置中心(Spring Cloud Config)(Finchley版本)
在上一篇文章讲述zuul的时候,已经提到过,使用配置服务来保存各个服务的配置文件.它就是Spring Cloud Config. 简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理, ...
- Mysql——通配符和正则表达式的使用
1.like操作符和百分号通配符 %表示任何字符出现任意次数. 查询出表TABLE中NAME字段中任意位置包含i的行: select * from TABLE where NAME like '%i% ...
- 洛谷 P2018 消息传递 题解
题面 总体来说是一道从下往上的DP+贪心: 设f[i]表示将消息传给i,i的子树全部接收到所能消耗的最小时间: 那么对于i的所有亲儿子节点j,我们会贪心地先给f[j]大的人传递,然后次大..... 可 ...
- 1-N(1的总数)找规律
见:https://blog.csdn.net/dormousenone/article/details/75208903 #define IOS ios_base::sync_with_stdio( ...
- linux内核编程入门 hello world
注意: Makefile 文件的命名注意M需要大写,否则会报错. 在Makefile文件中make命令前应为tab制表符. 下文转载至:https://blog.csdn.net/bingqing07 ...
- MySQL之高级增删改查一
一.select all/distinct 字段名/别名 from table where条件+[1]+[2]+[3]: where条件:>,<,≥,≤,like,between and( ...
- @Autowired注解与@Qualifier注解搭配使用----解决多实现选择注入问题
问题:当一个接口实现由两个实现类时,只使用@Autowired注解,会报错,如下图所示 实现类1 实现类2 controller中注入 然后启动服务报错,如下所示: Exception encount ...
- X86逆向6:易语言程序的DIY
易语言程序在中国的用户量还是很大的,广泛用于外挂的开发,和一些小工具的编写,今天我们就来看下如何给易语言程序DIY,这里是用的易语言演示,当然这门技术也是可以应用到任何一门编译型语言中的,只要掌握合适 ...
- Codeforces 1240C. Paint the Tree
传送门 首先每个点 $u$ 只能选择不超过 $k$ 个相连的边 并且设边为 $(u,v)$ ,那么此时 $v$ 也必须选择这条边 因为图是一颗树,显然考虑一下树形 $dp$ 设 $f[x][0/1]$ ...