uwsgi
应用服务器、代理、进程管理、监视器、通用的api和config
核心组件:配置相关、进程管理、socket创建、监控、日志、共享内存区域、ipc、集群、uwsgi subscription server(键值对映射系统)
插件:各种语言和平台
网关:负载均衡、代理、路由
Emperor:海量实例管理和监控
循环引擎:事件和并发 可用进程、线程、异步(事件驱动)、green thread coroutine、ugreen、Greenlet、Stackless、Gevent、CoroAnyEvent、Tornado、Goroutines、Fibers)
python
--http-socket据说是各个工作进程直接???测试时对性能未发现不同
通过processes和threads来增加并发,增加master来在工作进程结束后可重启和进行HTTP路由
python threads GIL
默认使用python插件且未指定threads数量时,不初始化GIL,在应用中生成的线程是不会被执行的。如果想维持python线程的支持同时不启动多个线程,可以添加
--enable-threads
可以通过uid gid来降低运行服务器的用户级别
这里如果服务器运行在高权限端口,需要使用
shared-socket = :80
http = =0
=0来指定shared-socket定义的
可以通过harakiri来设置超时时间,是一个定时器通过master管理的
可以启用offloading会启动纯c线程来完成可被c完成的一些工作,设置每个CPU一个
--iffload-threads n
部署django
uwsgi uwsgi.ini
[uwsgi]
master = True
processes = 1
http = :80
chdir = /usr/src/app
wsgi-file = resume/wsgi.py