当前位置: 首页 > Web前端 > vue.js

django-uwsgi-vue部署记录

时间:2023-03-31 14:48:21 vue.js

部署文件1.目录规划:/home/useradmin/├──applications---应用代码部署目录│├──DEV---开发环境│└──STG---测试环境├──applogs--日志文件目录│├──DEV---开发环境│└──STG---测试环境├──appvenv---python环境目录│├──DEV---开发环境│└──STG---测试环境├──installpackage---下载包或安装包文件├──scripts---启动脚本或自动更新脚本└──tmp--临时文件端口规划:开发环境DEV38000测试环境STG380012.部署前准备工作:项目使用环境变量VIRTUAL_ENV来识别当前环境是local、dev、stg还是prd下,然后根据环境自动启动使用不同的配置文件(见conf/settings/__init\__.py)。因此需要使用虚拟环境启动项目,虚拟环境的位置如上图所示(如果不使用虚拟环境启动,需要创建/home/useradmin/applogs/{DEV,STG,PRD}/目录,手动配置VIRTUAL_ENV环境为/home/useradmin/appvenv/{DEV,STG,PRD}/venv项目使用/home/useradmin/applogs/{DEV,STG,PRD}存放相关日志,部署时保证目录权限解释器版本:3.6.5(3.6.x应该可以)2.项目部署:部署结构:nginx托管所有静态文件+uwsgi托管后端项目所有静态文件包括两个parts:后台框架所需的基本静态文件和前端工程配置pipsourcevim~/.pip/pip.conf[global]timeout=6000index-url={Intranetpipsource}进入当前环境的python虚拟环境,cd到项目目录,安装项目依赖,确保你当前在虚拟环境,否则会安装依赖进入全局环境:pip3install-rrequirements.txt数据库初始化:pythonmanage.pymigrate如果提示db错误,参考下对应环境的配置文件中的db配置projectconf/settings确认数据库配置是否正确Installuwsgipip3installuwsgi如果提示Compilationinterrupted:plugins/python/uwsgi_python.h:2:20:Fatalerror:Python.h:Nosuchfileordirectory,然后停用,返回到全局环境sudoyuminstallpython3-devel.x86_64然后回到虚拟环境pip3installuwsgi需要的日志文件。nginx日志的默认位置:/var/log/nginx/access.log和error.loguwsgi日志在项目的uwsgi.ini中指定:#/var/log/uwsgi/uwsgi-deam.log/home/useradmin/applogs/DEV/uwsgi-deam.log在项目conf下环境对应的配置文件中指定django日志:/home/useradmin/applogs/DEV/djnago-req.log/home/useradmin/applogs/DEV/djnago-db.log使用uwsgi启动项目,cd到项目目录,指定uwsgi启动环境uwsgi--iniuwsgi.ini:DEVuwsgi--iniuwsgi.ini:STGuwsgi--iniuwsgi.ini:PRD可能会遇到日志文件读写权限问题,需要将相应的文件分配给uwsgi中指定的用户useradmin,chownuseradmin:useradminxx.log#有时候父文件也需要配置nginxnginx为主配置与uwsgi的连接,项目Hosting的静态文件首先收集指定静态根下的静态文件目录,并将它们放在项目目录中pythonmanager.pycollectstatic然后编辑nginx.conf,因为前端默认使用前端所在的ip和端口去请求后端资源,所以前后端使用同一个nginx.conf服务器(使用同一台服务器的另一个原因是为了避免跨域问题),所以:需要在URL上区分前后端资源(后端使用/api来标记后面-endresources),从/static/路径中过滤掉后端框架使用的静态文件rest_framewor和adminserver{listen38000default_server;#listen[::]:80default_server;服务器名称_;root/home/useradmin/applications/DEV/pauth_web/dist/;#前端工程目录#加载默认服务器块的配置文件。包括/etc/nginx/default.d/*.conf;location/api/{#后端api根目录includeuwsgi_params;#uwsgi_passunix:///run/DEV/pauth.sock;#deprecateuwsgi_passunix:///home/useradmin/applications/DEV/run/pauth.sock}location/static/rest_framework/{#后端BrowseableAPI需要的静态文件别名/home/useradmin/applications/DEV/static/休息框架/;}位置/静态/管理员/{#后端管理员需要的静态文件别名/home/useradmin/applications/DEV/static/admin/;}error_page404/404.html;location=/40x.html{}error_page500502503504/50x.html;位置=/50x.html{}}