使用gunicorn部署Flask项目


  • [*] 本文出处:http://b1u3buf4.xyz/
  • [*] 本文做者:B1u3Buf4
  • [*] 本文受权:禁止转载

从本身的博客移动过来。python

gunicorn是一个python Wsgi的WEB服务框架,只支持在Unix系统上运行,来源于Ruby的unicorn项目。虽然能够独自运行,但功能比较单一,一般是部署在Apache,Nginx以后。Gunicorn使用prefork master-worker模型,可以与各类wsgi web框架协做。linux

安装

gunicorn安装很是简单,使用命令pip install guncorn便可。通常使用它,主要是为使用其异步的worker模型,还须要安装对应的异步模块。web

$ pip install greenlet #使用异步必须安装
$ pip install eventlet #使用eventlet workers
$ pip install gevent   #使用gevent workers

使用

后面的内容使用Flask进行举例,代码选自Flask首页给出的测试代码,保存为test.py:shell

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

一般使用的参数:flask

-c CONFIG, --config=CONFIG
设定配置文件。
-b BIND, --bind=BIND
设定服务须要绑定的端口。建议使用HOST:PORT。
-w WORKERS, --workers=WORKERS
设置工做进程数。建议服务器每个核心能够设置2-4个。
-k MODULE
选定异步工做方式使用的模块。

在shell中输入你的启动配置,好比gunicorn -w 3 -b 127.0.0.1:8080 test:app,而后运行正常就能够启动服务器。服务器

绑定到常见端口

linux一般会禁止绑定使用1024如下的端口,除非在root用户权限。不少人在使用gunicorn时试图将其绑定到80或者443端口,发现无效。若是想绑定到这些端口,常见的有以下的几种方法:app

一、使用Nginx代理转发。
二、sudo启动gunicorn。
三、安装额外的程序。

若是使用方法2,要确保在sudo状态下使用pip安装的gunicorn,不然可能出奇怪问题。框架

结束进程

使用pstree -ap|grep gunicorn列出关于gunicorn的全部进程。输出内容是一个树形结构,最小的一级是worker进程,他们的上一级是gunicorn进程。使用kill -HUP [gunicorn的进程ID]杀掉进程。若是该进程还存在上一级进程,使用kill -9 [进程ID]将其完全关闭。以后再从新执行pstree -ap|grep gunicorn查看一下。异步

相关文章
相关标签/搜索