python Gunicorn
1. 简介
Gunicorn(Green Unicorn)是给Unix用的WSGI HTTP 服务器,它与不同的web框架是非常兼容的、易安装、轻、速度快。
2. 示例代码1
def app(environ, start_response):data = b"Hello World\n"start_response("200 OK", [("Content-Type", "test/plain"),("Content-Length", str(len(data)))])return iter([data])
启动
gunicorn -w 4 myapp:app
起来后显示
[2016-12-12 00:20:12 +0000] [11755] [INFO] Starting gunicorn 19.6.0 [2016-12-12 00:20:12 +0000] [11755] [INFO] Listening at: http://127.0.0.1:8000 (11755) [2016-12-12 00:20:12 +0000] [11755] [INFO] Using worker: sync [2016-12-12 00:20:12 +0000] [11760] [INFO] Booting worker with pid: 11760 [2016-12-12 00:20:12 +0000] [11761] [INFO] Booting worker with pid: 11761 [2016-12-12 00:20:12 +0000] [11762] [INFO] Booting worker with pid: 11762 [2016-12-12 00:20:12 +0000] [11763] [INFO] Booting worker with pid: 11763
此时,调用http://127.0.0.1:8000
$curl http://127.0.0.1:8000 Hello World
参数说明
-w 处理HTTP请求的worker进程数,以下两种启动方式等价
gunicorn -w 4 myapp:app gunicorn --workers=4 myapp:app
参考:
-w INT, --workers INTThe number of worker processes for handling requests.
问题:为何调用 http://ip:8000不行呢, 这个是什么请求呢?
默认有-b参数,参考
-b ADDRESS, --bind ADDRESSThe socket to bind. [['127.0.0.1:8000']]
以下方式启动就可以用ip的方式启动了
sudo gunicorn -w 2 -b 0.0.0.0:4000 myapp:app
3. 示例代码2
之前简单的flask方法
from flask import Flask app = Flask(__name__)@app.route('/hello.world') def check():return 'hello world!'if __name__ == '__main__':app.run()
启动
$sudo gunicorn -b 0.0.0.0:300 -w 4 myapp3:app [2016-12-18 19:19:51 +0000] [21005] [INFO] Starting gunicorn 19.6.0 [2016-12-18 19:19:51 +0000] [21005] [INFO] Listening at: http://0.0.0.0:300 (21005) [2016-12-18 19:19:51 +0000] [21005] [INFO] Using worker: sync [2016-12-18 19:19:51 +0000] [21010] [INFO] Booting worker with pid: 21010 [2016-12-18 19:19:51 +0000] [21011] [INFO] Booting worker with pid: 21011 [2016-12-18 19:19:51 +0000] [21014] [INFO] Booting worker with pid: 21014 [2016-12-18 19:19:51 +0000] [21017] [INFO] Booting worker with pid: 21017
测试
$curl localhost:300/hello.world hello world!
4. 启动异常:[ERROR] Connection in use: ('127.0.0.1', 8000)
原因之一是之前启动的进程没有杀死。
注:ctrl+z 是挂起进程,但没有终止。ctrl+c是终止进程。
如果使用了ctrl+z再回到进程中可使用fg命令,这样可以用ctrl+c来关闭进程
python Gunicorn相关推荐
- devops 开源工具链_使用开源工具构建DevOps管道的初学者指南
devops 开源工具链 DevOps已成为修复缓慢,孤立或其他功能不正常的软件开发流程的默认答案. 但是,当您不熟悉DevOps并且不确定从哪里开始时,这并不意味着什么. 本文探讨了什么是DevOp ...
- 分享:Gunicorn 0.17 发布,Python HTTP 服务器
Gunicorn 0.17 发布,Python HTTP 服务器 http://www.oschina.net/news/36142/gunicorn-0-17
- python diango 并发_利用gunicorn提高django的并发能力
引言 手头上的项目有一些采用django框架编写, 如果说并发量比较小的时候简单的runserver是可以应对的. 那么当并发达到一两千的时候,该怎么提高django的并发能力呢? Overview ...
- python flask gunicorn nginx 部署
WSGI协议 Web框架致力于如何生成HTML代码,而Web服务器用于处理和响应HTTP请求.Web框架和Web服务器之间的通信,需要一套双方都遵守的接口协议.WSGI协议就是用来统一这两者的接口的. ...
- python离线安装flask_Linux下离线安装Flask + gunicorn服务详细步骤
1)下载Flask依赖安装包 pytz.Babel.Jinja2.click.itsdangerous.MarkupSafe.Werkzeug 注意:需要优先安装pytz依赖包 下载tar.gz包即可 ...
- Gunicorn 0.17 发布,Python HTTP 服务器
HTTP 服务器 Gunicorn 0.17 发布了,该版本改进内容包括: 支持绑定多个网卡地址 支持 SSL 支持 syslog 增加 nworkers_changed 钩子 为 post_requ ...
- 关于 WSGI、uwsgi和uWSGI的区别及基于 uWSGI和gunicorn 部署python web 简述
关于 WSGI.uwsgi和uWSGI的区别及基于 uWSGI和gunicorn 部署python web 简述 引言 最近基于 Flask Web框架在开发一个后端项目,在Web Server和 F ...
- python web开发c6——阿里云上ubuntu+flask+gunicorn+nginx服务器部署(一)简单测试
简述 Nginx在服务器部署中的作用 请求通过Nginx实现反向代理,将请求提交给代理服务器.本文中只用了一台服务器,所以是代理到本机. gunicorn的作用 作为服务器代码的容器.接收Nginx的 ...
- python编程(webpy + gunicorn + nginx部署)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 之前虽然也用nginx + uwsgi + webpy的方法部署过网站,但是用了gunicorn ...
最新文章
- 一文搞定 GBDT、Xgboost 和 LightGBM 的面试
- linux 程序占内存,linux概念之程序占用内存
- 网络公司如何快速获取网站关键词流量
- 编写有效的事条指导原则
- Kuro and Walking Route CodeForces - 979C (树上DFS)
- qq掉线咒语:aidusort.as
- opensource项目_最佳Opensource.com:法律
- 【kafka】kafka log 存储时间 小于 offset 存储时间 offset存在但是消费不到
- son-server模拟http mock数据
- java实现最小二乘法
- python滑动手机屏幕_appium+python自动化24-滑动方法封装(swipe)
- fastjson转换对象时出错,$ref: $.data.list[0].xxxx
- c语言程序设计实践教程课后题,《C语言程序设计实践教程》答案-完整版.doc
- 2021年PMP考试最新通关宝典
- web端实现视频播放,视频地址切换,清晰度切换,断点续播
- Region Proposal by Guided Anchoring 阅读笔记
- Ubuntu grub recuse 修复方法
- ORACLE安全加固篇
- 【python】Dpark源码分析
- 【ps】教你用ps制作木质字母
热门文章
- 计算机二级c语言题库缩印,计算机二级C语言上机题库(可缩印做考试小抄资料)...
- matlab4.0,matlab 4.0
- 按钮旁边加一个提示_地铁站的那些“红色按钮”,你知道是干啥用的吗?乱按可能被拘留...
- 11. 盛最多水的容器 golang
- linux中错误总结归纳
- 剑指offer面试题:替换空格
- Linux并发服务器编程之多线程并发服务器
- vs2019使用sqlite数据库远程连接linux
- 1058 选择题 (20 分)
- 移植驱动完毕后加载时的version magic报错原因以及解决办法