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相关推荐

  1. devops 开源工具链_使用开源工具构建DevOps管道的初学者指南

    devops 开源工具链 DevOps已成为修复缓慢,孤立或其他功能不正常的软件开发流程的默认答案. 但是,当您不熟悉DevOps并且不确定从哪里开始时,这并不意味着什么. 本文探讨了什么是DevOp ...

  2. 分享:Gunicorn 0.17 发布,Python HTTP 服务器

    Gunicorn 0.17 发布,Python HTTP 服务器 http://www.oschina.net/news/36142/gunicorn-0-17

  3. python diango 并发_利用gunicorn提高django的并发能力

    引言 手头上的项目有一些采用django框架编写, 如果说并发量比较小的时候简单的runserver是可以应对的. 那么当并发达到一两千的时候,该怎么提高django的并发能力呢? Overview ...

  4. python flask gunicorn nginx 部署

    WSGI协议 Web框架致力于如何生成HTML代码,而Web服务器用于处理和响应HTTP请求.Web框架和Web服务器之间的通信,需要一套双方都遵守的接口协议.WSGI协议就是用来统一这两者的接口的. ...

  5. python离线安装flask_Linux下离线安装Flask + gunicorn服务详细步骤

    1)下载Flask依赖安装包 pytz.Babel.Jinja2.click.itsdangerous.MarkupSafe.Werkzeug 注意:需要优先安装pytz依赖包 下载tar.gz包即可 ...

  6. Gunicorn 0.17 发布,Python HTTP 服务器

    HTTP 服务器 Gunicorn 0.17 发布了,该版本改进内容包括: 支持绑定多个网卡地址 支持 SSL 支持 syslog 增加 nworkers_changed 钩子 为 post_requ ...

  7. 关于 WSGI、uwsgi和uWSGI的区别及基于 uWSGI和gunicorn 部署python web 简述

    关于 WSGI.uwsgi和uWSGI的区别及基于 uWSGI和gunicorn 部署python web 简述 引言 最近基于 Flask Web框架在开发一个后端项目,在Web Server和 F ...

  8. python web开发c6——阿里云上ubuntu+flask+gunicorn+nginx服务器部署(一)简单测试

    简述 Nginx在服务器部署中的作用 请求通过Nginx实现反向代理,将请求提交给代理服务器.本文中只用了一台服务器,所以是代理到本机. gunicorn的作用 作为服务器代码的容器.接收Nginx的 ...

  9. python编程(webpy + gunicorn + nginx部署)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 之前虽然也用nginx + uwsgi + webpy的方法部署过网站,但是用了gunicorn ...

最新文章

  1. 一文搞定 GBDT、Xgboost 和 LightGBM 的面试
  2. linux 程序占内存,linux概念之程序占用内存
  3. 网络公司如何快速获取网站关键词流量
  4. 编写有效的事条指导原则
  5. Kuro and Walking Route CodeForces - 979C (树上DFS)
  6. qq掉线咒语:aidusort.as
  7. opensource项目_最佳Opensource.com:法律
  8. 【kafka】kafka log 存储时间 小于 offset 存储时间 offset存在但是消费不到
  9. son-server模拟http mock数据
  10. java实现最小二乘法
  11. python滑动手机屏幕_appium+python自动化24-滑动方法封装(swipe)
  12. fastjson转换对象时出错,$ref: $.data.list[0].xxxx
  13. c语言程序设计实践教程课后题,《C语言程序设计实践教程》答案-完整版.doc
  14. 2021年PMP考试最新通关宝典
  15. web端实现视频播放,视频地址切换,清晰度切换,断点续播
  16. Region Proposal by Guided Anchoring 阅读笔记
  17. Ubuntu grub recuse 修复方法
  18. ORACLE安全加固篇
  19. 【python】Dpark源码分析
  20. 【ps】教你用ps制作木质字母

热门文章

  1. 计算机二级c语言题库缩印,计算机二级C语言上机题库(可缩印做考试小抄资料)...
  2. matlab4.0,matlab 4.0
  3. 按钮旁边加一个提示_地铁站的那些“红色按钮”,你知道是干啥用的吗?乱按可能被拘留...
  4. 11. 盛最多水的容器 golang
  5. linux中错误总结归纳
  6. 剑指offer面试题:替换空格
  7. Linux并发服务器编程之多线程并发服务器
  8. vs2019使用sqlite数据库远程连接linux
  9. 1058 选择题 (20 分)
  10. 移植驱动完毕后加载时的version magic报错原因以及解决办法