• 使用gunicorn部署Flask项目




    从自己的博客移动过来。

    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查看一下。

  • 相关阅读:
    终于在园子里安家了
    Ajax简单应用,检测用户名是否存在 (转)
    ASP.NET 2.0防止同一用户同时登陆方法一(转)
    .NET:七道asp.net页面传值题(转)
    蛙蛙推荐:SQLServer优化资料整理(转)
    我说看起来怎么这么眼熟
    ASP.NET 2.0防止同一用户同时登陆方法二(转)
    Javascirpt Function 不能命名为reset
    关于Jquery ajax调用一般处理程序Handler报500 错误(Internal Server Error)解决办法
    智能匹配
  • 原文地址:https://www.cnblogs.com/xiao3c/p/9684323.html
Copyright © 2020-2023  润新知