Python使用gunicorn部署Flask项目

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

安装gunicorn和flask

# *===================================*
# -*- coding: utf-8 -*-
# * Time : 2019-06-26 15:11
# * Author : zhangsf
# *===================================*
# encoding:utf-8
from flask import Flask, redirect, url_for

app = Flask(__name__)


@app.route('/')  # 首页
def index():
    login_url = url_for('login')
    print("这是首页")
    return redirect(login_url)  # 重定向为登录页面
    return u'这是首页'


@app.route('/login/')  # 登录页面
def login():
    return u'这是登录页面'


@app.route('/question/<is_login>')  # 问答页面
def question(is_login):
    if is_login == '1':
        return u'这是问答页面'
    else:
        return redirect(url_for('login.index'))


if __name__ == '__main__':
    app.run(host='127.0.0.1', port='5008', debug=True)

然后就在shell界面切换到login的目录之下

gunicorn -w 3 -b 0.0.0.0:5008 login:app

备注:

  • -b 表示 gunicorn 开发的访问地址 
  • -w 表示开启多少个线程
  • 设置0.0.0.0可以监听到所有ip的请求
  • login.py:app就是那个wsgifunc的名字

端口绑定问题:

linux通常会禁止绑定使用1024以下的端口,除非在root用户权限。

在使用gunicorn时试图将其绑定到80或者443端口,发现无效。

试了使用80端口发现无效

使用petree查看列出关于gunicorn的所有进程

(base) zhagnsf:~ zhangsf$ pstree |grep gunicorn
 | |   \--- 41047 zhangsf grep gunicorn
 |     |-+= 39835 zhangsf /Library/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python /Library/Frameworks/Python.framework/Versions/3.7/bin/gunicorn -b 0.0.0.0:5006 login:app
 |     | \--- 39838 zhangsf /Library/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python /Library/Frameworks/Python.framework/Versions/3.7/bin/gunicorn -b 0.0.0.0:5006 login:app
 |     \-+= 40365 zhangsf /Library/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python /Library/Frameworks/Python.framework/Versions/3.7/bin/gunicorn -w 3 -b 0.0.0.0:5008 login:app
 |       |--- 40368 zhangsf /Library/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python /Library/Frameworks/Python.framework/Versions/3.7/bin/gunicorn -w 3 -b 0.0.0.0:5008 login:app
 |       |--- 40369 zhangsf /Library/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python /Library/Frameworks/Python.framework/Versions/3.7/bin/gunicorn -w 3 -b 0.0.0.0:5008 login:app
 |       \--- 40370 zhangsf /Library/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python /Library/Frameworks/Python.framework/Versions/3.7/bin/gunicorn -w 3 -b 0.0.0.0:5008 login:app

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangvalue

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值