gunicorn、uwsgi、uvicorn认识
文章目录
- 一、概述
- 1.1 背景
- 二、详情
- 2.1 uwsgi_pass与uwsgi
- 2.2 proxy_pass 与gunicorn
- 2.3 uvicorn
- 三、总结
一、概述
1.1 背景
在使用python开发好web程序后,面对一个开机自启动维护的配置的编写,至于使用何组件,我们有三种选择,第一种django使用runserver,貌似支持websocket长连接,对内服务,小组件可以使用;
第二、第三就是gunicorn和uwsgi了。但是这两个有什么区别呢?下面从nginx配置入手讲起,感觉需要深入了解认识uwsgi_pass 和proxy_pass两个概念(nginx配置)。
二、详情
注意不要把uwsgi协议和uWSGI服务器混淆。
2.1 uwsgi_pass与uwsgi
语法:uwsgi_pass uri
默认值:none
使用字段:server, location
为一个uwsgi兼容服务器设置监听地址(tcp套接字,unix套接字或者流块)
一般结合uwsgi_params使用,更高级结合include uwsgi_params使用
语法:uwsgi_param key value
默认值:none
使用字段:server, location
为一个uwsgi请求增加一对key/value值。
示例,下图是一个默认配置:
进阶配置最终
2.2 proxy_pass 与gunicorn
语法: proxy_pass URL;
场景: location, if in location, limit_except
说明: 设置后端代理服务器的协议(protocol)和地址(address),以及location中可以匹配的一个可选的URI。协议可以是"http"或"https"。地址可以是一个域名或ip地址和端口,或者一个 unix-domain socket 路径。
详情参见:http://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_pass
使用图例:
2.3 uvicorn
异步是大趋势,asgi的服务的使用也会慢慢进入性能要求的视野,提前学习。
nginx配置则同gunicorn,需要注意这个组件。安装依赖uvloop和httptools。
本人使用示例:
三、总结
uvicorn启动其实并没有任何异步特性加成,后续还需要自己结合async/await编程。在多线程爬虫这种IO密集型程序上才会最大发挥其马力。
gunicorn、uwsgi、uvicorn认识相关推荐
- 闪电侠 Uvicorn
阅读本文大概需要 3.6 分钟. 什么是 Uvicorn ? 答:Uvicorn 是基于 uvloop 和 httptools 构建的非常快速的 ASGI 服务器. 什么是 uvloop 和 http ...
- Django3.0新鲜出炉!全面解读新特性,ASGI真香实锤,不来了解一下?
真的机缘巧合! 写这篇文章完全是机缘巧合,想想已经好长时间没有关注过Django了,虽然Django一直霸占着Python Web开发界的王座,但是由于各种原因自从使用Asyncio以来一直使用Aio ...
- python asyncio回调函数_最近用 Python 的 asyncio,有好多不懂。。
15 2017-03-14 19:35:58 +08:00 16 说下我对这 python 这几种 web 模型的理解吧: 首先是 http server + wsgi server(contai ...
- python flask源码解析_用尽洪荒之力学习Flask源码
[TOC] 一直想做源码阅读这件事,总感觉难度太高时间太少,可望不可见.最近正好时间充裕,决定试试做一下,并记录一下学习心得. 首先说明一下,本文研究的Flask版本是0.12. 首先做个小示例,在p ...
- WSGI 是什么?和nginx有什么关系?
回顾一下,我们在用python做web开发的时候,一般基于某个web框架来开发,django或者是flask等其它框架.业务开发完成后,就要部署到某台服务器中用于提供对外的访问. 这时候你去网上一搜, ...
- 第9章 Python Web 框架考察点
Python WSGI与web框架常考点 WSGI 常见Web框架 ◆什么是WSGI? ◆常用的 Python Web框架Dang/Fask/Tornado对比 ◆web框架的组成(淡化框架,加强基础 ...
- fastapi日志重复打印_【FastAPI】踩坑总结
阅读目录 一.部署之殇 二.日志之殇 三.中间件之殇 四.配置文件之殇 五.其它 一.部署之殇 1 linux后台启动 nohup uvicorn main:app --host 0.0.0.0 -- ...
- python官网网址是什么意思_大家都是怎么部署python网站的?
flask+gunicorn+nginx 作者:Python小白 链接:centos下通过gunicorn和nginx部署Flask项目 - Python小白的文章 - 知乎专栏 来源:知乎 著作权归 ...
- 关于wsgi协议的理解
基础概念 首先要了解 WSGI 规范的概念,WSGI(Web Server Gateway Interface)规范描述了web server(Gunicorn,uWSGI等)如何与web appli ...
- python web 常用库
# Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.[awesome-python](https://github.com/v ...
最新文章
- 在Asp.Net中从sqlserver检索(retrieve)图片
- 英语发音规则---N字母
- leetcode-34-在排序数组中查找元素的第一个和最后一个位置
- concurrent.futures模块(进程池线程池)
- 数据量大mysql当月_mysql 1.5倍数据量导致20多倍的执行时间?
- 1-2. linux系统结构
- Python内存管理方式和垃圾回收算法解析
- .net 刷新页面防止表单二次提交
- 总结:SpringMVC 中 GET 和 POST 方式请求中的中文乱码问题
- 逆水寒7月19服务器维护,逆水寒7月19日更新维护公告 更新内容汇总
- 基于vue的video播放组件
- 电磁感应理论之父,法拉第传奇
- [心情]一落千丈的反差
- java俄罗斯方块程序设计报告_java课程设计实验报告俄罗斯方块
- 【薪酬调研报告】2019TMT标杆企业高管薪酬与激励调研报告—德勤管理咨询
- 函数发生器的使用方法
- (28)部署强命名程序集到GAC
- 关于 Android 中 TabLayout 下划线适配文字长度解析(附清晰详细的源码解析)
- 为啥Spring事务失效了,你踩坑了吗?
- 【读书笔记】UML+OOPC嵌入式C语言开发精讲-认识对象