Javascript

ubuntu-django+vue部署

本文主要是介绍ubuntu-django+vue部署,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

资源准备

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

部署准备

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

部署

  • clone项目源码到服务器
  • 执行数据库迁移
  • nginx配置文件替换,客户端访问nginx服务器
  • 以守护进程启动uwsgi服务,uwsgi -d --ini uwsgi.ini

其它乱七八糟的坑

  • 用户
    • 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

这篇关于ubuntu-django+vue部署的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!