UWSGI配置协程

简介

uWSGI 是一个 Web 服务器,它实现了 WSGI(Web Server Gateway Interface)协议、uwsgi、http 等协议。WSGI 是 Python 的标准应用服务器/网关接口,被广泛用于各种 Python Web 开发框架中,比如 Flask 和 Django。

uWSGI 旨在提供全面的 Python Web 应用程序服务器。除了作为应用服务器,uWSGI 还内置了许多功能,如 HTTP 路由、负载均衡、静态文件服务、SSL 支持等。

uWSGI 的主要特点包括:

  • 高效:uWSGI 是用 C 语言编写的,运行效率高。
  • 灵活:uWSGI 支持多种协议和多种语言运行环境,包括 Python、Ruby、Perl、PHP 等。
  • 易于扩展:uWSGI 支持插件,可以根据需要添加新的功能。
  • 高度可配置:uWSGI 提供了丰富的配置选项,可以满足各种复杂的部署需求。

uWSGI 通常与 Nginx 或其他 Web 服务器配合使用,Nginx 负责处理 HTTP 请求,然后将请求转发给 uWSGI,uWSGI 再调用 Python Web 应用程序处理请求,最后将响应返回给 Nginx,然后由 Nginx 返回给客户端。

常用三种配置模式

进程+协程(比较推荐)

[uwsgi]
; 表示开启的进程数为8
processes = 8
; 表示开启的协程数量为100
gevent = 100

进程+线程

[uwsgi]
; 表示开启的进程数为8
processes = 8
; 表示开启多线程模式,默认uwsgi是关闭多线程的
enable-threads = true
; 表示每个进程开启的线程数量为4
threads = 4

进程+线程+协程

[uwsgi]
; 表示开启的进程数为8
processes = 8
; 表示开启多线程模式,默认uwsgi是关闭多线程的
enable-threads = true
; 表示每个进程开启的线程数量为4
threads = 4
; 尽早应用 monkey patching 可以解决与 gevent 不兼容的库或代码导致的问题,当你的程序在执行 I/O 操作时(如网络请求、文件读写等),gevent 可以在后台自动切换协程,从而实现并发执行多个任务
gevent-early-monkey-patch = true
gevent-monkey-patch = true
; 每个线程开启100个协程
gevent = 100

额外说明

如果在uwsgi配置文件中配置了以下两行

gevent-early-monkey-patch = true
gevent-monkey-patch = true

则不需要在server启动时,代码中显示的引用以下两行;不过重复引用也不会报错,每次引用是幂等的

import gevent.monkey
gevent.monkey.patch_all()

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值