django和celery的项目,nginx和uwsgi协议,在通过api端口进行deeplearning任务的训练和排队

2023-09-21 19:20:33

问题汇总

  1. redis 安装
  2. django和celery的安装
  3. nginx和uwsgi的安装
    一. Django 的项目,有个runserver直接起了一个webserver,为什么还要Nginx包一层,起一个webserver呢?
    Nginx的性能比Django自带的Webserver的性能要好,python写的程序,deeplab想要被web访问,需要有python写的webserver,
    常见的webserver:uWSGI,Guncom, wsgiref等
    Django自带的runserver的性能不好,其作用主要用于搭建时的功能测试和试运行
    所以通常webserver是联合nginx和uwsgi一起做,WSGI是web服务的网关接口,是web服务器(nginx)和应用服务器(uWSGI)的通信规范
    在实际的应用过程中,web的所有的动态请求会通过uWSGI,而所有的静态请求会通过nginx,(所有的良好的架构都会实现动静分离,这会大大提高web的响应效率)
    二,已经有了本地的Django项目,将其部署到服务器上的步骤
    1 上传项目至目标服务器,保证项目在服务器上能正常运行runserver起来
    2 安装nginx
    pip install nginx
    3 实际生产以conf配置文件启动uwsgi,需要配置相应的conf
    4 安装uwsgi
    conda install uwsgi
    (pip 安装会error)
    5 修改nginx的配置文件

一些config的配置
Django项目和celery结合的项目中的config文件(独立于nginx,能独立运行)

  • ai_service中的settings.py
    其中的ALLOW_HOSTS = [内网访问的地址] (vscode远程连接时,左下角的地址)
  • mycelery文件夹中的config.py
    这里的broker_url和result_backend是redis中的内容,用来接收什么信号到celery队列中吧,我也不知道
    mycelery中的main,会使用这两个config文件,其中ai_service中的settings会设置到os.environ.setdefult,而mycelery.config会被配置到celery的对象app中的app.config_from_object中

========================================================================
nginx和uwsgi中的配置文件
在上面两个config文件配置好后,就不需要再改变了
而在ai_service中有wsgi.py,其中会用到settings.py这个config用以配置环境
为在生产环境中使用,通常会将uwsgi以配置文件的方式启动,uwsgi.ini会在Django项目的根目录下,其中会配置socket(虽然不知什么用),chdir(Django项目的根目录路径), module(ai_server.wsgi) 实际上指向的是wsgi.py文件
ngix在启动时,如果不配置nginx的配置文件,则只会有nginx的欢迎页,其配置文件在/etc/nginx/nginx.conf中,需要以sudo的方式vim更改,在更改时,需要向http中添加server的{},同时,listen和server_name是最重要的;location中的uwsgi_pass后的内容需要和uwsgi.ini中的socket字段相同,uwsgi_read_timeout 是请求发出后,多久定义为timeout并返回(由于计算分类任务的tsne点需要进行迭代,所以需要耗费较长时间,可以将其定义的时间长一点,否则,还没等请求计算完场,就需要返回,并显示timeout,这是不合理的)
修改nginx.conf后需要重启nginx
使用命令 sudo /etc/init.d/nginx restart

报错socket的端口被占用:原因,没有停掉uwsgi,直接关闭了窗口
解决方式: 将那个端口杀死,并重启服务
在这里插入图片描述

更多推荐

json数据解析

目录一、读数据1、简单对象读取2、数组读取3、对象读取二、写数据1、简单生成JSON2、对象数组JSON3、嵌套对象三、一个综合例子1、读JSON2、写JSON一、读数据1、简单对象读取{"app":"xnwVideo","src":"C:\\build-video\\Output","dest":"C:\\build

thinkphp:查询本周中每天中日期的数据,查询今年中每个月的数据,查询近五年每年的总数据

一、查询本周中每天中日期的数据结果:以今天2023-09-14为例,这一周为2023-09-11~2023-09-07代码后端thinkphp://查询本周每天的的总金额数//获取本周的起始日期和结束日期$weekStart=date('Y-m-d',strtotime('thisweekMonday'));$week

零基础Linux_5(开发工具_上)yum和vim和gcc/g++和gdb

目录1.软件包管理器yum1.1安装软件的方式1.2yum指令2.vim(编辑器)2.1vim的简单操作2.1.1方向键(HJKL)2.1.2退出vim2.2vim文本批量化操作(命令模式)2.2.1复制.粘贴.删除.剪贴.撤销2.2.2光标跳转2.2.3vim其它操作2.3配置vim3.gcc和g++3.1程序的翻译

leetcode363周赛

2859.计算K置位下标对应元素的和核心思想:枚举+调库,比较简单这题。2860.让所有学生保持开心的分组方法数核心思想:枚举选择学生的人数,首先选0个,选1个,选2个,选3个...;由于要满足题目要求得到一个结论我们需要优先选择nums[i]小的(具体证明可以看b站灵神视频),当时我有一个疑问比如选择三个学生,这三个

CRM软件系统对外贸行业的解决方案

国内的外贸行业经历了四个发展阶段,从发展期到繁荣期,CRM客户管理系统逐步走到幕前,成为外贸企业必不可少的主打工具。那么外贸行业正面临哪些问题?该如何解决?下面我们就来说说适合外贸行业的CRM解决方案。外贸行业的压力和困境外贸行业向来都是机遇与挑战并存。每年都有商业领袖行业大咖高呼外贸的春天要来了,可外贸人自己感受到的

Microsoft Dynamics 365 CE 扩展定制 - 1. 无代码扩展

简介商用现货产品(COTS)对企业组织来说是有吸引力的选择,因为它们包含了可配置的开箱即用功能,可以在不编写任何代码的情况下满足大部分业务需求。Dynamics365也不例外。DynamicsCRM365专门提供功能强大的模块化功能丰富的产品,可根据您的组织需求进行定制。一般来说,随着产品的发展,可配置的无代码扩展实现

XC5350A 单节锂电池保护芯片 过放2.9V/2.8V/2.4V保护IC

XC5350A产品是一个高集成度的鲤离子/聚合物电池保护解决方案。XC5350A包含先进的功率MOSFET,高精度电压检测电路和延迟电路XC5350A放入一个超小型SOT23-5封装,只有一个外部元件使其成为在电池组有限的空间的理想解决方案。XC5350A具有包括过充,过放,过流和负载短路保护等电池应用所需的所有保护功

docker常用命令汇总及解释

Docker是一个开源的应用容器引擎,它允许开发者将应用及其依赖打包到一个可移植的容器中,并发布到任何流行的Linux机器或Windows机器上。以下是一些常用的Docker命令及其解释:1.`dockerpull`:从DockerHub或其他仓库下载镜像。例如:`dockerpullubuntu:latest`,这将

方法区(Method Area)

方法区(MethodArea)与Java堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类型信息、常量、静态变量、即时编译器编译后的代码缓存等数据。虽然《Java虚拟机规范》中把方法区描述为堆的一个逻辑部分,但是它却有一个别名叫作“非堆”(Non-Heap),目的是与Java堆区分开来。《Java虚拟机规范

JVM——8.内存分配方式

这篇文章我们来讲一下jvm的内存分配方式目录1.概述1.1jvm运行时数据区1.2堆空间的分代1.3对象分配的整体流程2.具体的内存分配方式2.1指针碰撞法2.2空闲列表法2.3Java虚拟机选择策略3.小结1.概述我们前面在GC那篇文章中写了JVM的内存分配策略,讲述了对象优先在Eden区进行分配等等几条策略,而这里

免备案海外服务器有什么好处?

介绍一:了解海外服务器免备案的优点免备案海外服务器是指在国外搭建网站服务器而不是在国内备案,这种模式可以带来一定的便利。首先,海外服务器免备案可以使网站更加稳定,因为国外网络环境更加稳定,大多数国外服务器性能高,可以保证网站的正常运行,也可以使网站的响应时间更快。其次,海外服务器免备案还可以保证网站数据的安全性。国外服

热文推荐