使用Gunicorn部署Sanic应用

2687 篇文章 26 订阅
253 篇文章 1 订阅

简介:Gunicorn是一个 UNIX 下的 WSGI HTTP 服务器,它是一个 移植自 Ruby 的 Unicorn 项目的 pre-fork worker 模型。它既支持 eventlet , 也支持 greenlet在管理 worker 上,使用了 pre-fork 模型,即一个 master 进程管理多个 worker 进程,所有请求和响应均由 Worker 处理。Master 进程是一个简单的 loop, 监听 worker 不同进程信号并且作出响应。比如接受到 TTIN 提升 worker 数量,TTOU 降低运行 Worker 数量。如果 worker 挂了,发出 CHLD, 则重启失败的 worker, 同步的 Worker 一次处理一个请求。和大多数的web框架兼容,并具有实现简单,轻量级,高性能等特点。

目录结构:

(py39) [root@ci4vyvxi572ysx2s sanicGunicorn]# tree -D -L 2
.
├── [Mar 27 23:23]  app.py
├── [Mar 27 23:23]  __pycache__
│   └── [Mar 27 23:23]  app.cpython-39.pyc
└── [Mar 27 23:27]  requirements.txt

1 directory, 3 files

requirements.txt:​​​​​​​

sanic
uvicorn
gunicorn

案例源码:​​​​​​​

# -*- coding: utf-8 -*-
# time: 2023/3/27 22:02
# file: app.py
# 公众号: 玩转测试开发
import datetime
from sanic import Sanic
from sanic.response import json

app = Sanic(__name__)


@app.route("/hi")
async def test(request):
    return json({"hello": "world", "time": f"{str(datetime.datetime.now())}"})

后台运行:

gunicorn app:app -w 1 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000 &

gunicorn常用参数:​​​​​​​

指定一个配置文件(.py) -c --config

绑定socket -b --bind
gunicorn -b 127.0.0.1:8080

守护进程后台运行 -D --daemon

worker的数量 -w --workers

工作进程类型 -k

指定access日志文件 --access-logfile

指定error日志文件 --error-logfile

访问结果:http://{ip}:8000/hi

最后: 下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取【保证100%免费】

在这里插入图片描述

 这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值