python3 django gunicorn
首先,Gunicorn是一个高效的Web服务器,地位相当于Java中的Tomcat。简单来说gunicorn封装了HTTP的底层实现,我们通过gunicorn启动服务,用户请求与服务相应都经过gunicorn传输。
下载gunicorn的方法也比较简单,在django工程里一般都是直接写到requirements.txt文件中,当然也可以手动下载,执行pip install gunicorn 即可。
接下来介绍如何使用gunicorn来启动django服务。
其实,这个过程到也简单,就一个命令就可以了。
python3 gunicorn application -c gunicorn_conf.py
一步一步看,python3是指python的解释器,gunicorn是下载下来的python包, application是从wsgi中引出来的django服务信息,上面有说到gunicorn就是一个web服务器,所以gunicorn_conf.py就是它的配置文件了。
看个实际中使用的命令:
sudo /build/mts/mydjango_app/run_gunicorn.sh -c /build/mts/service/mydjango_app/gunicorn_conf.py这样就可以直接启动django服务了。
其中,run_gunicorn.sh中的内容为:
#!/bin/bash
set -eenvdir=/build/mts/mydjango_app/py38envexport PYTHONDONTWRITEBYTECODE=1exec $envdir/bin/python3 $envdir/bin/gunicorn mydjango_app.wsgi:application "$@"在看看gunicorn_conf.py中的内容:
user = 'mts'
group = 'mts'logconfig = '/build/mts/service/webapps/log_config.ini'
access_log_format = '%(r)s | %(h)s | %(b)s | %(s)s | %(D)s us'bind = '0.0.0.0:8001'workers = 16
timeout = 90
max_requests = 500
# pass the ssl values as being forwarded from nginx
secure_scheme_headers = {}最后,再看看,所谓的wsgi.py是个啥内容:
import osfrom django.core.wsgi import get_wsgi_applicationos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings')application = get_wsgi_application()所以,不难发现,上面提到的实际使用的关于gunicorn的shell命令,就是我上面写的命令:
python3 gunicorn application -c gunicorn_conf.py
这个命令中,只有application这个参数,才是将gunicorn(web服务),与django工程勾连到一起的参数。
上面提到的关于gunicorn的用法,大体上算是生产环境上的用法,之所以说大体上,就是因为,在gunicorn_conf.py中,bind参数,我选择监听的是本地的地址,这显然是为了测试所做出的选择。生产环境往往bind参数会选择绑定nginx的一个地址。因为gunicorn 可以单独提供服务,但生产环境一般不这样做。首先静态资源(jscssimg)会占用不少的请求资源,而对于 gunicorn 来讲它本身更应该关注实际业务的请求与处理而不应该把资源浪费在静态资源请求上;此外,单独运行 gunicorn 是没有办法起多个进程多个端口来负载均衡的。nginx 的作用就是弥补以上问题,首先作为前端服务器它可以处理一切静态文件请求,此时 gunicorn 作为后端服务器,nginx 将会把动态请求转发给后端服务器,因此我们可以起多个 gunicorn 进程,然后让 nginx 作均衡负载转发请求给多个 gunicorn 进程从而提升服务器处理效率与处理能力。最后,nginx 还可以配置很多安全相关、认证相关等很多处理,可以让你的网站更专注业务的编写,把一些转发规则等其它业务无关的事情交给 nginx 做。
大体上,就是这些了。
相关文章:
python3 django gunicorn
首先,Gunicorn是一个高效的Web服务器,地位相当于Java中的Tomcat。简单来说gunicorn封装了HTTP的底层实现,我们通过gunicorn启动服务,用户请求与服务相应都经过gunicorn传输。下载gunicorn的方法也比较简单,在django工程…...
专家分享 | 租赁型售楼处标准化示范区提效研究
2023年2月8日上午,优积科技邀请原金地集团北京公司 高级室内设计专业应锎经理为我司团队分享《租赁型售楼处标准化示范区提效》的专题。 此次专家分享课题加上大家踊跃讨论时间长达3小时,会上应总详细介绍了租赁型售楼处标准化示范区提效,需…...
linux之echo使用技巧
参考文章:linux基本功系列-echo命令实战一、echo 命令是什么?作用: echo命令能将指定文本显示在Linux命令行上,或者通过重定向符写入到指定的文件中。语 法:echo [-ne][字符串] / echo [–help][–version]补充说明&am…...
Keras实例教程(7)之构建模型的第三种方式
多年以前,在TensorFlow中搭建深度学习模型对于很多人来说其实仍然是比较困难的。相比之下,Keras作为独立于TensorFlow的一种深度学习框架则要简单很多。在TensorFlow与PyTorch的竞争中逐渐式微的情况下,TensorFlow团队终于宣布Keras将成为在tensorflow2.0中构建和训练模型的…...
【JUC并发编程】18 CopyOnWriteArrayList源码也就够看2分钟
文章目录1、CopyOnWriteArrayList概述2、原理 / 源码1)构造函数2、add()3)get()4)remove()5)iterator()1、CopyOnWriteArrayList概述 CopyOnWriteArrayList相当于线程安全的ArrayList,底层是一个可变数组。 特点如下…...
如何优雅的实现回调函数?
本篇文章又是一期优雅的代码编程介绍———回调函数。 传统的nodejs编程都是这样的 const fs require(fs) fs.readFile(test.txt,utf8, function(err, dataStr){if(err){} }) 嵌套层级如果多了就成回调地狱了。如果我们将这种风格的代码转换成这样呢? const fs …...
3GPP-NR Band20标准定义频点和信道(3GPP V17.7.0 (2022-12))
Reference test frequencies for NR operating band n20 Table 4.3.1.1.1.20-1: Test frequencies for NRoperating band n20 and SCS 15 kHz CBW [MHz]carrierBandwidth...
Excel表格的公式不想显示出来,可以这样操作
在制作Excel表格的时候,很多人做数据会用到函数公式,这些编辑都是默认可以看到的。 但有时候我们不想让他人看到自己的计算思路和所用公式,有没有办法可以隐藏公式,只显示数据呢?答案是肯定的,今天我们就来…...
【零基础入门前端系列】—语义化标签、实体字符、视频、音频(八)
【零基础入门前端系列】—语义化标签、实体字符、视频、音频(八) 一、什么是HTML语义化标签 语义化的标签,旨在让标签有自己的含义 如上代码:p标签与span标签的区别之一就是,p标签的含义是段落而span标签没有独特的…...
超详细讲解线性表和顺序表!!
超详细讲解线性表和顺序表!!线性表顺序表顺序表的概念及结构静态顺序表动态顺序表顺序表接口实现1、创建2、初始化3、扩容4、尾插5、打印6、销毁7、尾删8、头插9、头删10、插入任意位置11、删除任意位置12、查找13、修改线性表 线性表(linea…...
大数据之-Nifi-Nifi的安装_启动_认识Nifi的操作台---大数据之Nifi工作笔记0002
然后我们看一下如何安装nifi 这个上一节已经说了 然后看一下环境准备,这个自己去安装就可以了,需要jdk,1.8就可以了,然后 maven安装上就可以了 然后去下载,这里下载Linux版本的 1.9.2的版本比较稳定 下载以后,避免端口冲突要修改端口默认是8080,修改为58080 然后启动很简单,看…...
【大数据clickhouse】clickhouse 常用查询优化策略详解
一、前言 在上一篇我们分享了clickhouse的常用的语法规则优化策略,这些优化规则更多属于引擎自带的优化策略,开发过程中只需尽量遵守即可,然而,在开发过程中,使用clickhouse更多将面临各种查询sql的编写甚至复杂sql的…...
【Java项目】基于Java+MySQL+Tomcat+maven+Servlet的个人博客系统的完整分析
✨哈喽,进来的小伙伴们,你们好耶!✨ 🛰️🛰️系列专栏:【Java项目】 ✈️✈️本篇内容:个人博客系统前后端分离实现! 🚀🚀个人代码托管github:博客系统源码地址ÿ…...
java 程序员怎么做找工作
java 程序员怎么做找工作 在网络招聘网站上搜索职位。在中国,像智联招聘、前程无忧、猎聘网等招聘网站上,有许多公司在招聘JAVA程序员。通过这些网站可以快速找到自己合适的工作。 关注社交媒体和专业网站。 加入一些面向JAVA程序员的社交媒体和专业网…...
S7-1200对于不同项目下的PLC之间进行开放式以太网通信的具体方法示例
S7-1200对于不同项目下的PLC之间进行开放式以太网通信的具体方法示例 如下图所示,打开TIA博途创建一个新项目,并通过“添加新设备”组态 S7-1200 客户端 ,选择 CPU1214C DC/DC/DC (client IP:192.168.0.102),建立新子网; 首先编写客户端程序:打开OB1编程界面,选择指令…...
操作系统(四):磁盘调度算法,先来先服务,最短寻道时间优先,电梯算法
文章目录一、磁盘结构二、先来先服务三、最短寻道时间优先四、电梯算法 SCAN一、磁盘结构 盘面(Platter):一个磁盘有多个盘面; 磁道(Track):盘面上的圆形带状区域,一个盘面可以有多…...
maven解决包冲突简单方式(插件maven helper | maven指令)
文章目录使用idea插件maven helper使用maven指令在Java开发中,常常会遇到不同jar包之间存在冲突的情况,这可能会导致编译错误、运行时异常等问题。 使用idea插件maven helper 在idea安装插件maven helper 安装重启完之后点击pom文件,有一个De…...
100行Pytorch代码实现三维重建技术神经辐射场 (NeRF)
提起三维重建技术,NeRF是一个绝对绕不过去的名字。这项逆天的技术,一经提出就被众多研究者所重视,对该技术进行深入研究并提出改进已经成为一个热点。不到两年的时间,NeRF及其变种已经成为重建领域的主流。本文通过100行的Pytorch…...
linux操作系统篇
目录 操作系统概述基本特征并发共享虚拟异步进程管理内存管理文件管理设备管理宏内核和微内核宏内核微内核中断分类外中断异常陷入(系统调用)进程管理进程与线程的区别进程状态切换进程调度算法**批处理系统****交互式系统**进程同步临界...
redis+token实现登录校验,前后端分离,及解跨域问题的4种方法
目录 一、使用自定义filter实现跨域 1、客户端向服务端发送请求 2、服务端做登录验证了,并生成登路用户对应的token,保存到redis 3、响应(报错)-----跨域问题 4、解决跨域问题--------服务器端添加过滤器,设置请求…...
C++/Qt 使用 Tushare 获取股票信息
探索数据之源:使用tushare为Qt/C学习项目获取股票数据在进行金融量化分析或学习金融市场行为时,获取高质量、结构化的股票数据是至关重要的第一步。作为一个计划将Qt/C用于金融数据可视化或策略模拟的学习者,我近期深入体验了使用Python库tus…...
终极指南:深入解析Material Library架构与模块依赖关系
终极指南:深入解析Material Library架构与模块依赖关系 【免费下载链接】material A library to bring fully animated Material Design components to pre-Lolipop Android. 项目地址: https://gitcode.com/gh_mirrors/mate/material Material Library是一…...
戴尔Precision Pro商务笔记本回归,新一代产品聚焦便携性
看起来2026年是戴尔按下重启键的一年——在消费者和商用产品线中,戏剧性的品牌重塑都在被回归。有时候,老品牌确实是好品牌:熟悉的XPS名称和设计今年回归是有原因的,绝对不是因为戴尔Premium有正面的品牌认知度。在戴尔商务产品方…...
利用快马平台快速构建mcporter数据转换工具原型,十分钟验证数据管道设计
最近在做一个数据迁移项目时,遇到了需要频繁转换数据格式的需求。传统方式下,光是搭建开发环境、编写基础代码就要花上大半天时间。这次尝试用InsCode(快马)平台快速构建了一个mcporter数据转换工具原型,整个过程出乎意料地顺畅。 明确核心需…...
避免这些坑!Unity2D界面转换中常见的动画事件处理问题及解决方案
避免这些坑!Unity2D界面转换中常见的动画事件处理问题及解决方案 在Unity2D游戏开发中,界面转换是提升用户体验的关键环节。一个流畅的淡入淡出效果能让场景切换更加自然,但很多开发者在实际操作中常会遇到动画事件不触发、协程执行异常等问题…...
形态学操作进阶:手把手教你设计Hit-or-Miss内核检测十字/直角结构
形态学操作进阶:手把手教你设计Hit-or-Miss内核检测十字/直角结构 在计算机视觉领域,形态学操作一直是图像处理中不可或缺的技术手段。其中,Hit-or-Miss变换作为一种高级形态学操作,能够精准定位二值图像中的特定结构模式。想象一…...
Debian 12上彻底卸载TigerVNC的5个隐藏步骤(附残留文件清理技巧)
Debian 12上彻底卸载TigerVNC的5个隐藏步骤(附残留文件清理技巧) 作为Linux系统管理员,你是否遇到过TigerVNC卸载后仍然出现端口占用或配置冲突的情况?常规的apt remove往往无法彻底清除所有痕迹。本文将揭示那些鲜为人知的清理技…...
YOLOv5实战:如何自定义COCO指标计算APtiny(附完整代码修改指南)
YOLOv5实战:深度解析COCO评估指标自定义与APtiny计算优化 在目标检测领域,COCO数据集的评估标准已成为衡量模型性能的黄金准则。但当我们面对特定场景——尤其是小目标检测任务时,标准的3232像素"small"类别划分往往难以满足精细化…...
2026电商客服外包TOP5实力品牌详细解读
进入2026年,电商行业已从粗放式扩张转向精细化运营时代,客户服务不再局限于简单的问答回复,而是成为驱动店铺销售增长、积累品牌声誉的关键要素。根据最新行业研究报告,专业的外包客服团队能够帮助店铺将询单转化率提高20%-30%&am…...
GB28181协议实战:WVP开源项目+ZLM流媒体服务联调配置详解
GB28181协议实战:WVP开源项目ZLM流媒体服务联调配置详解 在视频监控领域,GB28181协议作为国家标准协议,已经成为设备互联互通的重要基础。而将WVP(Web Video Platform)开源项目与ZLM(ZLMediaKit)…...
