openrsty以后是否会加入ModSecurity安全模块了

390 views
Skip to first unread message

苦咖啡

unread,
Dec 26, 2015, 10:34:11 AM12/26/15
to openresty
hi 春哥
    openrsty以后是否会加入modsecurity安全模块了,现在此模块中很多都是其于lua来写的,还是只把保持现有的轻量级模块
    另外还有一个问题,是否会将淘宝的tengine中一些优化nginx的模块集成进来了,这样在使用的时候不管是把openresty做为前端代理服务器,或是后端nginx lua代码服务器都不用编译多个版本,只是个人想法

Yichun Zhang (agentzh)

unread,
Dec 26, 2015, 12:44:06 PM12/26/15
to openresty
Hello!

2015-12-26 7:34 GMT-08:00 苦咖啡:
> openrsty以后是否会加入modsecurity安全模块了,现在此模块中很多都是其于lua来写的,还是只把保持现有的轻量级模块
>

我没有计划直接加入现有那个用 C 编写的 modsecurity 模块,但我会引入一个和 modsecurity 规则配置语言相兼容的基于
Lua 的 WAF 平台,见我在这个列表里面贴的 2016 roadmap.

> 另外还有一个问题,是否会将淘宝的tengine中一些优化nginx的模块集成进来了,这样在使用的时候不管是把openresty做为前端代理服务器,或是后端nginx
> lua代码服务器都不用编译多个版本,只是个人想法
>

比如哪些优化 nginx 的模块?

Regards,
-agentzh

X山鹰

unread,
Dec 27, 2015, 4:36:06 AM12/27/15
to 苦咖啡, openresty

我用过ModSecurity 当请求比较多时,它会严重影响整个Nginx对请求的响应速度。而且影响相当大。如果有更好的不建议使用

ModSecurity作为waf

 

发送自 Windows 10 手机版 Outlook 邮件

 


发件人: 苦咖啡
发送时间: 20151226 23:34
收件人: openresty
主题: [openresty] openrsty以后是否会加入ModSecurity安全模块了

 

hi 春哥
    openrsty以后是否会加入modsecurity安全模块了,现在此模块中很多都是其于lua来写的,还是只把保持现有的轻量级模块
    另外还有一个问题,是否会将淘宝的tengine中一些优化nginx的模块集成进来了,这样在使用的时候不管是把openresty做为前端代理服务器,或是后端nginx lua代码服务器都不用编译多个版本,只是个人想法

--
--
邮件来自列表“openresty”,专用于技术讨论!
订阅: 请发空白邮件到 openresty...@googlegroups.com
发言: 请发邮件到 open...@googlegroups.com
退订: 请发邮件至 openresty+...@googlegroups.com
归档: http://groups.google.com/group/openresty
官网: http://openresty.org/
仓库: https://github.com/agentzh/ngx_openresty
教程: http://openresty.org/download/agentzh-nginx-tutorials-zhcn.html

YuanSheng Wang

unread,
Dec 28, 2015, 5:56:27 AM12/28/15
to open...@googlegroups.com, 苦咖啡
春哥的意思是引入 ModSecurity 规则配置语言,使得他可以直接支持 ModSecurity 规则,但是经过语言编译后,直接跑在 openresty 上。
--

苦咖啡

unread,
Dec 31, 2015, 9:26:14 PM12/31/15
to openresty
比如tengine的CPU亲情设置
Core functionality
为worker_processes增加参数auto。当设置成auto,tengine将自动启动与cpu数量相同的worker进程。
为worker_cpu_affinity增加参数auto和off。当设置成auto时,tengine将根据worker的数量自动配置cpu绑定位图。绑定的顺序是按CPU编号从大到小。 如果worker数量大于cpu数量,则剩余的worker进程将按照CPU编号从大到小的顺序从编号最大的CPU开始再次绑定。例如:某CPU有8核,
worker数量是4,则自动配置的绑定位图是10000000, 01000000, 00100000, 00010000
worker数量是8,则自动配置的绑定位图是10000000, 01000000, 00100000, 00010000, 00001000, 00000100, 00000010, 00000001
worker数量是10,则自动配置的绑定位图是10000000, 01000000, 00100000, 00010000, 00001000, 00000100, 00000010, 00000001, 10000000, 01000000

ngx_http_log_module
ngx_http_concat_module
ngx_http_reqstat_module
http_upstream_check_module

这里是tengine的文档




在 2015年12月27日星期日 UTC+8上午1:44:06,agentzh写道:

Yichun Zhang (agentzh)

unread,
Dec 31, 2015, 11:47:42 PM12/31/15
to openresty
Hello!

2015-12-31 18:26 GMT-08:00 苦咖啡:
> 比如tengine的CPU亲情设置
> Core functionality
> 为worker_processes增加参数auto。当设置成auto,tengine将自动启动与cpu数量相同的worker进程。

标准 nginx 已支持这个 worker_processes auto 特性,见

http://nginx.org/en/docs/ngx_core_module.html#worker_processes

> 为worker_cpu_affinity增加参数auto和off。当设置成auto时,tengine将根据worker的数量自动配置cpu绑定位图。绑定的顺序是按CPU编号从大到小。
> 如果worker数量大于cpu数量,则剩余的worker进程将按照CPU编号从大到小的顺序从编号最大的CPU开始再次绑定。例如:某CPU有8核,
> worker数量是4,则自动配置的绑定位图是10000000, 01000000, 00100000, 00010000

这个特性有两个潜在问题:

1. 对于使用了 hyper threading 而产生的额外的逻辑 CPU 核,最合适绑定方式不一定是你演示的这种,可以参见

http://nginx.org/en/docs/ngx_core_module.html#worker_cpu_affinity

2. 由于 1) 及其他不可预见的原因,Tengine 实现的此 auto 特性有可能与未来 nginx 官方实现的 auto
语义产生不同,从而产生未来向后兼容的不可控性。这也是为什么 OpenResty 尽量避免 fork 标准的 NGINX 核心。

我承认这个特性配合前面 worker_processes auto 的特性会很方便,但需要对 NGINX 进行无法保证未来向后兼容性的修改,所以是不好去做的。

>
> ngx_http_log_module

这是 NGINX 标准模块:

http://nginx.org/en/docs/http/ngx_http_log_module.html

> ngx_http_concat_module

这个模块你可以直接通过 OpenResty 的 ./configure --add-module=PATH 选项添加进 OpenResty.
当然,我们不太想把此模块直接作为 OpenResty 标准组件,因为我们没有精力自己去维护这个模块。

> ngx_http_reqstat_module

很多用户已经通过 log_by_lua 来定义更为灵活的请求 stats,还包括非阻塞的异步日志推送等复杂逻辑。

> http_upstream_check_module
>

可以通过下面这个 Lua 库来实现最重要的 http 健康检查功能:

https://github.com/openresty/lua-resty-upstream-healthcheck

可以和标准的 NGINX 核心很好地一起工作。这个 Lua 库是 OpenResty 的标准组件。

Regards,
-agentzh

Yichun Zhang (agentzh)

unread,
Jan 15, 2016, 5:05:51 PM1/15/16
to openresty
Hello!

2015-12-31 20:47 GMT-08:00 Yichun Zhang (agentzh):
>> 为worker_cpu_affinity增加参数auto和off。当设置成auto时,tengine将根据worker的数量自动配置cpu绑定位图。绑定的顺序是按CPU编号从大到小。
>> 如果worker数量大于cpu数量,则剩余的worker进程将按照CPU编号从大到小的顺序从编号最大的CPU开始再次绑定。例如:某CPU有8核,
>> worker数量是4,则自动配置的绑定位图是10000000, 01000000, 00100000, 00010000
>

刚刚看到 NGINX 官方已经添加了 worker_cpu_affinity auto 这个特性:

http://mailman.nginx.org/pipermail/nginx-devel/2016-January/007759.html

该特性将会包含在下一个 NGINX 官方的 1.9.10 主线版发布中。OpenResty 1.9.10.x 及其以后的版本自然也会包含此特性。

Regards,
-agentzh
Reply all
Reply to author
Forward
0 new messages