Python web api工具:uWSGI

uWSGI的主要特点如下:
1,超快的性能。
2,低内存占用(实测为apache2的mod_wsgi的一半左右)。
3,多app管理。
4,详尽的日志功能(可以用来分析app性能和瓶颈)。
5,高度可定制(内存大小限制,服务一定次数后重启等)。


安装:

apt-get install build-essential python-dev
pip3 install uwsgi

uwsgi 命令行参数: 
-w加启动程序 

-M 开启Master进程
-p 4 开启4个进程 
-s 使用的端口或者socket地址 
-d 使用daemon的方式运行, 注意, 使用-d后, 需要加上log文件地址, 比如-duwsgi.log 
-R 10000 开启10000个进程后, 自动respawn下 
-t 30 设置30s的超时时间, 超时后, 自动放弃该链接 
–limit-as 32 将进程的总内存量控制在32M 
-x  使用配置文件模

例如:

uwsgi -s :9090 -w myapp -M -p 4 -t 30 --limit-as 128 -R 10000 -d uwsgi.log

.ini参数:

[uwsgi]

master = false#是否启动主进程

vhost = true#是否开启虚拟主机模式

processes = 2#进程数

threads = 0#线程数

reload-mercy = 10#设置在平滑的重启(直到接收到的请求处理完才重启)一个工作子进程中,等待这个工作结束的最长秒数。这个配置会使在平滑地重启工作子进程中,如果工作进程结束时间超过了10秒就会被强行结束(忽略之前已经接收到的请求而直接结束)。

vacuum = true#当服务器退出的时候自动删除unixsocket文件和pid文件

max-requests = 1500#为每个工作进程设置请求数的上限。当一个工作进程处理的请求数达到这个值,那么该工作进程就会被回收重用(重启)。你可以使用这个选项来默默地对抗内存泄漏(尽管这类情况使用reload-on-as和reload-on-rss选项更有用)。

http = :9090#网关

daemonize =uwsgi.log#使进程在后台运行,并将日志打到指定的日志文件或者udp服务器

pidfile =uwsgi.pid#在失去权限前,将pid写到指定的pidfile文件中。

harakiri = 10#这个选项会设置harakiri超时时间,如果一个请求花费的时间超过了这个harakiri超时时间,那么这个请求都会被丢弃,并且当前处理这个请求的工作进程会被回收再利用(即重启)。

 

例子:
test.py
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]

测试:

uwsgi --http :9090 --wsgi-file test.py
或者,
uwsgi --ini test.ini --file test.py


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值