• 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
    
    
  • 相关阅读:
    Redis-Sp:Redis主要功能
    Redis-Sp:Redis介绍
    阿里云-Redis-Help-连接实例-Redis客户端连接:C#客户端StackExchange.Redis
    Samba通过ad域进行认证并限制空间大小《转载》
    SQL函数简述
    SELECT--UNION,UNION ALL,MINUS, INTERSECT,EXISTS
    oracle数据库常用查询一
    oracle以web方式登录EM、ISQLPlus
    关于sys、system、sysman等在EM中登录的问题
    top 命令SQLServer-sybase-oracle
  • 原文地址:https://www.cnblogs.com/bonus_scene/p/15225017.html
Copyright © 2020-2023  润新知