zoukankan      html  css  js  c++  java
  • web-django+vue部署

    资源准备

    • vue项目资源打包dist(js、css、html、img)
    • django项目依赖文件,pipreqs(通常项目开发使用独立的虚拟环境,避免环境互相污染)(可能有些包会收集不到,还有一些像uwsgi包本地开发用不到,需要手动添加)
    • django收集静态资源(如:swagger、admin的静态资源)
    • uwsgi.ini 配置文件
    • nginx 配置文件

    部署准备

    • 本地合并代码并提交到远程仓库主分支
    • 环境配置工具安装:virtualenv,virtualenvwrapper,python3.6-dev,git
    • 配套服务安装:nginx、mysql、redis

    部署&检查

    • clone项目源码到服务器
    • 执行数据库迁移
    • nginx配置文件替换,客户端访问nginx服务器
    • 以守护进程启动uwsgi服务,uwsgi -d --ini uwsgi.ini
    • 检查dist静态资源是否正常访问,检查django服务是否正常访问,检查django静态资源是否正常访问
    • 检查日志是否正常记录

    其它乱七八糟的坑

    • 用户
      • root用户
      • 普通用户
      • sudo命令,sudo以root用户执行命令
        • pip3 --version => 20.0.0
        • sudo pip3 --version => 21.0.0
        • 版本是不同的
    • python版本
      • python2.7
      • python3
      • python3.6
      • python3.8
    • pip版本
    • uwsgi版本

    使用虚拟环境

    • linux python虚拟环境 工具
    • 虚拟环境创建,激活,退出,删除
    • 虚拟环境python版本指定,可开发环境的版本要一致
    • 虚拟环境pip安装uswgi(python3.6安装uwsgi报错一长串gcc,解决方法apt-get install python3.6-dev,之前用的apt安装后还是报错,用apt-get安装后就好了???神马情况?)

    python环境配置:安装和开发环境一致的python版本,创建虚拟环境,指定python版本,pip安装依赖包,pip安装uwsgi等其它依赖包
    服务器环境配置:nginx代理vue打包的静态文件资源,uwsgi.ini配置文件,nginx配置代理uwsgi服务,django collectionstatic收集静态资源,nginx代理这些静态资源

    nginx配置文件

    # 后端访问配置
    #upstream wtest {
    #    server 127.0.0.1:8000;
    #}
    
    # 后端服务配置
    server {
        listen 8001;  # 监听端口
        server_name wtest-server;  # 服务名称
        location /api {  # rest接口服务
    	include uwsgi_params;  
    	uwsgi_pass 127.0.0.1:8000;
        }
        location /static {  # 静态资源服务
    	alias /opt/wtest/wtest-server/static;
        }
    }
    
    
    # 前端服务配置
    server {
        listen 80;  # 监听端口
        server_name www.wtest.com;  # 设置访问网站域名或者ip
    
        location / {  # 路由路径
            root /opt/wtest/wtest-client/dist;  # vue打包的静态资源包
            index index.html;   # index页面
    	try_files $uri $uri /index.html;  # 这个不知道是什么,好像是抓不到的时候有用
        }
    
    }
    

    uwsgi配置文件

    #使用nginx连接时使用,django程序所在服务器地址
    socket=127.0.0.1:8000
    #直接做web服务器使用,django程序所在服务器地址
    #http=0.0.0.0:8080
    #项目目录
    chdir=/opt/wtest/wtest-server
    module=wtest:wsgi.py
    #项目中wsgi.py文件的目录,相对于项目目录
    wsgi-file=wtest/wsgi.py
    # 进程数
    processes=4
    # 线程数
    threads=2
    # uwsgi服务器的角色
    master=true
    # 存放进程编号的文件
    pidfile=uwsgi.pid
    # 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。我们以前的runserver是依赖终端的
    #daemonize=/var/log/uwsgi.log
    # 指定依赖的虚拟环境
    #pythonpath=/home/zyy/.virtualenvs/wtest-venv/lib/python3.6/site-packages
    virtualenv=/home/zyy/.virtualenvs/wtest-venv
    # clear environment on exit #退出时清除环境
    vacuum = true
    
    
  • 相关阅读:
    Python 函数式编程学习
    Perl 学习笔记-目标操作
    Ubuntu14.04-LTS 从系统安装到配置可用
    Perl 学习笔记-文件测试
    Perl 学习笔记-模块
    插曲 强大的神器 vmware
    18 11 16 网络通信 ---- 多线程 同步概念 解决资源互斥的问题
    18 11 15 网络通信 ---- 多任务----线程 threading
    18 11 14 案例 下载文件后端编写
    18 11 13 装了ssd 继续 网络通信 tcp 客户端的创建
  • 原文地址:https://www.cnblogs.com/bonus_scene/p/15225017.html
Copyright © 2011-2022 走看看