uWSGI 2.0
更新日志 [20131230]
重要改动
已确定删除动态选项,以及broken_plugins目录
错误修复和改进
- 改进日志循环
- 不依赖unix信号在harakiri期间打印请求状态
- 为uid和gid添加魔术变量
- 各种Lua修复
- Riccardo Magliocchetti贡献的大量coverity管理(coverity-governed)的错误修复
新特性
–attach-daemon2
这是一个用于配置外部守护进程的基于键值的选项。
已更新文档: 管理外部守护进程/服务
Linux setns()支持
uWSGI 1.9-2.0中的最大的改进之一是对Linux名字空间的完全支持。
这最后的补丁添加了对setns()系统调用的支持。
该系统调用允许一个进程“附加”到一个正在运行中的名字空间。
uWSGI实例可以通过unix socket公开它们的名字空间文件描述符 (基本上,它们是/proc/self/ns中的文件)。
外部实例连接到那个unix socket,然后自动进入映射到名字空间。
要以“名字空间服务器模式”生成一个实例,则使用 —setns-socket <addr>
选项
- uwsgi --setns-socket /var/run/ns.socket --unshare net,ipc,uts ...
要附加,则简单使用 —setns <addr>
- uwsgi --setns /var/run/ns.socket ...
已更新文档: 使用Linux名字空间监禁(jailing)你的应用
“私有”钩子
当uWSGI运行你的钩子时,它冗长打印整个钩子动作信息。这在某些场景(例如,当你作为root用户运行初始阶段,并且允许非特权用户访问日志时)下会是一个安全问题。
在你的动作前面加上前缀’!’会抑制完全日志记录:
- [uwsgi]
- hook-asap = !exec:my_secret_command
yajl库 (JSON解析器) 支持
直到现在,uWSGI只支持把jansson作为managing .js配置文件所需的json解析器。
你现在可以使用yajl库 (centos中可用) 来作为替代的JSON解析器 (将会自动检测)
Perl spooler支持
perl/PSGI插件现在可以被用作一个spooler服务器:
- uwsgi::spooler(sub {
- my $args = shift;
- print Dumper($args);
- return -2;
- });
客户端部分仍旧缺失,因为我们需要修复一些内部API问题。
预期在2.0.1完成 ;)
网关可以移除特权
网关 (例如http router, sslrouter, rawrouter, forkptyrouter …)现在可以由master独立移除特权。
目前,只有http/https/spdy路由器公开了新的选项 (—http-uid/—http-gid
)
Subscriptions-governed SNI上下文
订阅系统现在支持3个额外的键 (你可以用–subscribe2选项来设置它们):
sni_key
sni_cert
sni_ca
它们所有都接收一个到相关ssl文件的路径。
看看: SNI - 服务器名称识别 (SSL节点的虚拟主机)
可用性
uWSGI 2.0已于20131230发布,你可以从这里下载: