博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux之部署前后端分离项目
阅读量:5913 次
发布时间:2019-06-19

本文共 4381 字,大约阅读时间需要 14 分钟。

  首先得看我前两个博客,把python3,虚拟环境,mariadb数据库,redis数据库,nginx安装好。

  一、创建一个虚拟环境

  1,创建虚拟环境

mkvirtualenv zijin   #创建了一个叫zijin的虚拟环境

  2,安装模块

1,上传项目的requirement.txt文件2,在当前的虚拟环境中安装模块pip3 install -i https://pypi.douban.com/simple -r requirement.txt 注:安装xadmin,会出现错误,需要我们手动安装, pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2

  3,上传项目

我是把项目都上传到opt目录下

  二、数据库导入

  1,把本地电脑上mysql数据库的表结构和数据导出

第一种:mysqldump -u root -p --all-databases >  luffy_city.sql第二种从navicat导出数据库数据,导出为luffycity.sql#我采用的是第二种,完成这步,会生成一个sql格式文件

  2,把生成的sql文件上传到/opt目录下

  3,在Linux系统下进入mariadb数据库,新建一个lufei数据库,然后进入lufei数据库

  4,导入sql文件

source /opt/lufei.sql #这样就会自动生成表结构和数据

  5,刷新权限表

# 允许root用户远程登录,并且给予所有数据库所有表的所有权限grant all privileges on *.* to root@'%' identified by '123';flush privileges;

  三、运行django项目

  1,修改drf项目的settings.py文件

ALLOW_HOSTS=["*"]数据库连接配置注意: mariadb就是mysql,这里的ENGINE不用修改DATABASES = {    'default': {        'ENGINE': 'django.db.backends.mysql',        "HOST": "127.0.0.1",        "PORT": 3306,        "USER": "root",        "PASSWORD": "123",        "NAME": "lufei",    }}

  2,运行项目

在opt/lufei_drf目录下输入命令python3 manage.py runserver 0.0.0.0:8000

  如果项目代码没问题的话,是可以在浏览器上正常访问的

   四、使用uwsgi启动项目

  1,安装uwsgi

1,进入虚拟环境workon lufei2,安装uwsgipip3 install uwsgi

  2,使用uwsgi启动项目

uwsgi --http :9000 --module lufei_drf.wsgi    #lufei_drf为drf项目文件 在浏览器上输入ip和端口就可以访问项目

  3,可以使用uwsgi配置文件启动项目

1,在lufei_drf项目创建uwsgi,ini文件mkdir /opt/lufei_drf/uwsgi.ini2,写入配置信息[uwsgi]chdir           = /opt/lufei_drf      #这是项目的绝对目录module          = lufei_drf.wsgi     #项目目录加wsgihome            = /root/Envs/lufei    #虚拟环境的绝对路径master          = true                    #启动uwsgi主进程processes       = 1#socket          = 0.0.0.0:8000    #这个是当用nginx代理时使用http            = 0.0.0.0:8000vacuum       =true 3,使用uwsgi配置文件启动项目 uwsgi uwsgi.ini

  五、使用nginx

  1,收集静态文件

1,修改settings.py配置文件STATIC_ROOT='/opt/static'2,创建今天文件存放目录mkdir /opt/static3,收集django下的所有今天文件python3 manage.py collectstatic

  2,nginx转发uwsgi的配置

1,在nginx.conf配置文件中修改location / {            include  /opt/nginx112/conf/uwsgi_params;            uwsgi_pass 0.0.0.0:9000;        }location /static {            alias /opt/static;        }2,将uwsgi.ini配置文件修改socket          = 0.0.0.0:9000   # 启用此行# http            = 0.0.0.0:9000  # 停用此行3,平滑重启nginx/opt/nginx112/sbin/nginx -s reload

  现在,在浏览器上输入192.168.12.64:8000就可以访问django项目

  六、配置vue前端项目

  1,安装及配置node.js

1,在opt目录下下载noode安装包wget https://nodejs.org/download/release/v10.15.3/node-v10.15.3-linux-x64.tar.gz2,解压tar -zxvf node-v10.15.3-linux-x64.tar.gz3,添加环境变量vim /etc/profile把path修改为:PATH=/opt/node-v10.15.3-linux-x64/bin:/opt/python36/bin:/usr/local/sbin:/usr/local/bin: /usr/sbin:/usr/bin:/root/bin

  2,把vue项目中的所有ip改为192.168.12.64

  3,生成dist项目静态文件

1,进入vue项目cd /opt/lufei2,输入npm run build

  4,在nginx添加服务

server {        listen       80;     #前端vue用80端口        server_name www.lufei.com ;   #使用域名www.lufei.com        location / {            root  /opt/lufei/dist;                  #静态文件目录            index index.html index.htm;        }        error_page   500 502 503 504  /50x.html;    }

  修改hosts文件:

  注意:在drf项目的settings.py文件中修改跨域问题

  这样就可以把整个项目运行起来了。记得平滑启动nginx和启动uwsgi

  5,当我们进入一个页面后,刷新页面,就会报404错误,解决办法:

在nginx配置文件下的关于前端vue端口的server下的location下添加:try_files $uri $uri/ /index.html;

  七、superviosr守护进程工具

  我们在使用uwsgi启动django时,每次都要输入命令,然后才能启动,而且界面还比保持在uwsgi的启动界面,当退出这个界面的时候,就相当于退出了uwsgi进程,从而项目就停止了,所以用起来有点烦。我们可以用supervisor工具,只要uwsgi进程在supervisor里面是running状态,那只要supervisor不关闭uwsgi进程,uwsgi进程就会一直跑起来。

  1,安装

由于supervisor在python3下无法使用,因此只能用python2去下载!!!!!!退出虚拟环境,切记deactivate安装easy_install supervisor# 如果没有easy_install的话,就yum安装一个setuptools工具就可以用了yum install python-setuptools

  2,生成配置文件,并添加配置信息

1,生成配置文件echo_supervisord_conf > /etc/supervisord.conf2,进入配置文件vim /etc/supervisord.conf3,添加配置信息[program:lufei_drf]   #lufei_drf为项目目录command=/root/Envs/lufei/bin/uwsgi /opt/lufei_drf/uwsgi.ini#lufei为虚拟环境名,

  3,启动及查看

1,启动supervisord -c /etc/supervisord.conf # 启动supervisorsupervisorctl -c /etc/supervisord.conf # 启动和进入supervisor交互模式2,查看supervisorctl  # 使用此命令后将会进入supervisor交互式管理界面status  # 查看进程运行状态

  4,管理supervisor里面的进程

stop luffy_city    # 关闭luffy_city进程stop all           # 关闭所有进程start luffy_city   # 开启luffy_city进程start all          # 开启所有进程status             # 查看所有进程运行状态supervisorctl status  # 可以不用进入交互模式查看

  注:当你按照我的步骤进行的,如果出现supervisor启动有问题,不要慌,把所有的的退出,重新连接之后,基本上就可以用了

整个请求流程图如下,手残,望谅解

转载于:https://www.cnblogs.com/12345huangchun/p/10732848.html

你可能感兴趣的文章
区块链100讲:梅克尔树保障区块链数据不可篡改,想换根就要砍树!
查看>>
如何使用jstack分析线程状态
查看>>
运营不需要人脉?
查看>>
全方位解读Java反射(reflection)
查看>>
Spring Cloud Config服务器
查看>>
fprobe使用
查看>>
yum 安装rabbitMQ
查看>>
跟我学《JavaScript高程3》视频教程,下载地址
查看>>
GLSL变量
查看>>
使用nginx—搭建YUM仓库
查看>>
测试人员必学的软件快速测试方法(二)
查看>>
linux下以RPM包安装Oracle 客户端
查看>>
28. PowerShell -- 注册表操作
查看>>
artDialog-交互弹出插件_无效文章
查看>>
2015年后的九大企业级技术发展趋势
查看>>
搭建 android sdk环境
查看>>
LINUX常用的查看命令
查看>>
第14章 grep、sed、awk 正则表达式
查看>>
Game 游戏分类
查看>>
SCCM 2007 sp2 eva安装之一:sql server 2005安装及升级sp2
查看>>