ngx_lua在又拍云的应用:日志收集、性能调优与服务化

http://www.infoq.com/cn/presentations/application-of-ngx-lua-in-the-upyun\

概要

ngx_lua 是一个 NGINX 的第三方扩展模块,它能够将 Lua 代码嵌入到 NGINX 中来执行。UPYUN 的 CDN 大量使用了 NGINX 作为反向代理服务器,并开发了一系列例如流量统计、缓存调度、防盗链等相关的 C 模块,但从 2013 年开始由于业务场景的复杂化,使得用 C 模块来写这些业务逻辑有点力不从心了,对于小团队来说开发和维护负担都很重,因此我们选择了将这部分业务逻辑迁移到 ngx_lua 上,事实表明,这大大提升了我们整个 CDN 层业务功能的迭代速度和最终线上表现。此次主要跟大家分享的就是我们团队在这整个转换过程中的一些心得体会,以及在 NGINX 上基于 ngx_lua 的一些有趣的功能,特别地,会着重介绍下我们是如果利用 ngx_lua 的灵活性来动态收集日志进行数据聚合分析的。

ngx_lua在又拍云的应用:日志收集、性能调优与服务化_第1张图片

张聪,又拍云系统开发工程师,C / Lua 程序员,目前主要负责 UPYUN CDN 相关的设计和开发工作,兼部分 UPYUN 分布式存储系统相关的运维工作;在 NGINX C 模块和 OpenResty / ngx_lua 模块的开发和维护方面有一些经验积累,同时热衷于推动公司内部的测试及运维自动化。偶尔会关注 C, Lua, Python, Erlang 相关的编程语言社区,同时对 Redis, NGINX 源代码研究工作非常感兴趣,崇尚简单实用的工程实践,希望自己以后成为优秀程序员的同时也是一位很好的实践者,用程序去创造东西,用程序去解决问题。

你可能感兴趣的:(ngx_lua在又拍云的应用:日志收集、性能调优与服务化)