使用gunicorn部署Flask项目
- [*] 本文出处:http://b1u3buf4.xyz/
- [*] 本文作者:b1u3buf4
- [*] 本文授权:禁止转载
从自己的博客移动过来。
gunicorn是一个python wsgi的web服务框架,只支持在unix系统上运行,来源于ruby的unicorn项目。虽然可以独自运行,但功能比较单一,通常是部署在apache,nginx之后。gunicorn使用prefork master-worker模型,能够与各种wsgi web框架协作。
安装
gunicorn安装非常简单,使用命令pip install guncorn
即可。一般使用它,主要是为使用其异步的worker模型,还需要安装对应的异步模块。
$ pip install greenlet #使用异步必须安装 $ pip install eventlet #使用eventlet workers $ pip install gevent #使用gevent workers
使用
后面的内容使用flask进行举例,代码选自flask首页给出的测试代码,保存为test.py:
from flask import flask app = flask(__name__) @app.route("/") def hello(): return "hello world!"
通常使用的参数:
-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端口,发现无效。如果想绑定到这些端口,常见的有如下的几种方法:
1、使用nginx代理转发。 2、sudo启动gunicorn。 3、安装额外的程序。
如果使用方法2,要确保在sudo状态下使用pip安装的gunicorn,否则可能出奇怪问题。
结束进程
使用pstree -ap|grep gunicorn
列出关于gunicorn的所有进程。输出内容是一个树形结构,最小的一级是worker进程,他们的上一级是gunicorn进程。使用kill -hup [gunicorn的进程id]
杀掉进程。如果该进程还存在上一级进程,使用kill -9 [进程id]
将其彻底关闭。之后再重新执行pstree -ap|grep gunicorn
查看一下。
上一篇: 配置支持SSI
下一篇: java面向对象基础_final详细介绍
推荐阅读
-
使用gunicorn部署Flask项目
-
使用 Docker 部署 SpringBoot 项目 (Jar 包、War包)
-
使用IDEA创建Java Web项目并部署
-
使用Docker部署Nginx+Flask+Mongo的应用
-
使用Portainer部署Docker容器的项目实践
-
使用构建Docker镜像的方式部署Vue项目
-
vue项目使用github actions自动部署
-
从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之十三 || DTOs 对象映射使用,项目部署Windows+Linux完整版,
-
nginx+gunicorn项目部署
-
Flask 使用Gunicorn部署服务介绍