• linux部署项目(前后端分离项目)


    参考博客

    技术栈

    路飞学城部署 vue + nginx + uwsgi + django + mysql + redis(就是一个key - value型数据库,缓存型数据库,内存型数据库)

    部署步骤如下(4步)

    1.前端vue部署 

    1.下载vue代码,解压缩
    wget https://files.cnblogs.com/files/pyyu/07-luffy_project_01.zip
    
    unzip 07-luffy_project_01.zip 
    
    
    2.配置node环境,去打包编译vue代码
    
    下载node的代码包
        wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz
    解压缩node代码包
    tar -zxvf node-v8.6.0-linux-x64.tar.gz
    配置node的PATH环境变量即可
    修改PATH生效即可
    vim /etc/profile
    source /etc/profile
    
    3.验证node是否正确配置(node就是如同python解释器   npm就是如同pip软件包管理工具)
    node -v 
    npm -v   
    
    4.修改vue的代码文件
    因为vue需要向后台发起请求,找到uwsgi
    我们的架构是将uwsgi隐藏在nginx后面
    
    所有,vue(端口80)首先找的是nginx(反向代理,端口是9000),然后nginx(反向代理,端口是9000)反向代理给uwsgi (后端地址,9001) 
    
    修改方式如下
    api.js路径如下/opt/s18luffy/07-luffy_project_01/src/restful
    #这里更改你自己的服务器ip地址
    sed -i  "s/127.0.0.1:8000/192.168.226.128:9000/g"  api.js 
    
        sed 是linux处理字符串的命令
        -i 是将结果替换到文件
        "s/127.0.0.1:8000/192.168.226.128:9000/g"   #解释  s是替换模式  /你想替换的内容/你想替换的结果/   g是全局替换 
        api.js  你想修改操作的文件
        
        
        
    5.进行打包vue,生成静态文件夹 dist
    确保你在vue的代码文件夹 
    npm install  #解决vue代码所需的模块依赖  
    
    npm run build    #进行编译打包
    
    
    6.当vue打包正确完成后,生成一个dist静态文件夹,此时就给丢给nginx去做反向代理处理!!!

    2.后端uwsgi部署

        1.下载路飞代码
        wget  https://files.cnblogs.com/files/pyyu/luffy_boy.zip
        2.安装新的虚拟环境,解决环境依赖问题 ,可以用requirements.txt解决依赖问题
    vim 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
        
        3.安装这个文件 requirements.txt
        pip3 install -i https://pypi.douban.com/simple -r requirements.txt 
    
        4.使用uwsgi去启动路飞学城后端
        使用uwsgi.ini配置文件方式启动,内容如下
    [uwsgi]
    # Django-related settings
    # the base directory (full path)
    #填写项目的绝对路径(第一层路径)
    chdir           = /opt/s18luffy/luffy_boy
    # Django's wsgi file
    #填写crm第二层目录下的wsgi.py文件的路径
    module          = luffy_boy.wsgi
    # the virtualenv (full path)
    #填写虚拟环境的绝对路径
    home            = /root/Envs/s18luffy
    
    # process-related settings
    # master
    master          = true
    # maximum number of worker processes
    #基于uwsgi的多进程,根据cpu来优化 
    processes       = 4
    # the socket (use the full path to be safe
    
    #如果你用了nginx反向代理,就填写socket参数
    #如果你用了nginx反向代理,就填写socket参数
    #如果你用了nginx反向代理,就填写socket参数
    #如果你用了nginx反向代理,就填写socket参数
    #如果你用了nginx反向代理,就填写socket参数
    socket          = 0.0.0.0:9001  
    
    #如果你没用nginx,想直接通过浏览器测试后端,使用http 
    #http = 0.0.0.0:9001
    
    # ... with appropriate permissions - may be needed
    # chmod-socket    = 664
    # clear environment on exit
    vacuum          = true
        
        5.用supervisor也去管理路飞的后台
            [program:s18luffy]
            command=/root/Envs/s18luffy/bin/uwsgi  --ini  /opt/s18luffy/luffy_boy/uwsgi.ini
            stopasgroup=true
            killasgroup=true

    3.nginx反向代理转发

    修改nginx.conf内容如下
    
    
    虚拟主机1
     server {
            #第一个虚拟主机,监听的80端口
            listen       80;
            server_name  192.168.226.128;
            location / {
                root /opt/s18luffy/07-luffy_project_01/dist;
                index index.html;
            }
    }
    
    虚拟主机2
    
    server {
        listen 9000;
        server_name  192.168.226.128;
        location  / {
            uwsgi_pass 0.0.0.0:9001;
            include uwsgi_params;
        }
    
    }
    
    重启nginx生效

    4.启动redis,路飞学城用的是sqllite,不需要mysql

    yum install redis -y  #安装命令
    systemctl start redis  
    
    redis登录命令
    redis-cli  登录命令
    登录后输入 ping 返回一个pong代表正确启动
    5.windows访问路飞学城首页,查看课程列表 ,进行alex账户登录
    账户:  alex 
    密码:  alex3714 
    
    登录后,添加django课程信息后,可以查看购物车信息,代表正确启动路飞学城
    最后访问
    1.路飞学城部署
    
    2.先把vue静态文件和nginx部署起来,可以看到路飞首页
        vue部署
        1.下载vue代码
        2.配置node环境
        3.修改vue代码向后台发送数据接口的地址 
        4.代码确认无误后,进行编译安装
        npm instlal 
        npm run build 
        5.以上4步,目的是为了,得到最后一步的 那个 dist文件夹
        里面有我需要的index.html  static静态文件夹
        
        6.将这个dist丢给 nginx去返回页面即可
        
    3.把后端uwsgi+django+mysql运行起来
    备注,先别用supervisor了
    
    
    使用 uwsgi --ini  uwsgi.ini方式去启动
    
    将uwsgi --ini uwsgi.ini 这个命令进程,运行在后台的方式
    1. 第一种方式 、
    uwsgi --ini uwsgi.ini  &  
    2.第二种方式
    在uwsgi.ini中写入 daemonize  = uwsgi.log  就是将后台运行的日志写入到uwsgi.log
    
    
    
    3.确保nginx,vue,uwsgi,redis都正常后,路飞即可访问
    部署总结
  • 相关阅读:
    设计模式之实现状态模式
    一定要记住的OO设计原则:
    设计模式之实现命令模式
    设计模式之实现迭代器模式
    设计模式之实现观察者模式
    设计模式之实现策略模式
    设计模式之实现组合模式
    设计模式之实现几种工厂模式
    设计模式之实现装饰者模式
    pygame学习笔记(3)——时间、事件、文字
  • 原文地址:https://www.cnblogs.com/l1222514/p/11416331.html
Copyright © 2020-2023  润新知