nginx模块开发

Nginx模块概述—干货分享!

China☆狼群 提交于 2019-11-25 20:39:45
Nginx 工作原理 : Nginx 由内核和模块组成 1.Nginx 本身做的工作实际很少,当它接到一个 HTTP 请求时, 它仅仅是通过查找配置文件将此次请求映射到一个 location block,而此 location 中所配 置的各个指令则会启动不同的模块去完成工作,因此模块可以看做 Nginx 真正的劳动工作者。 2. 通常一个 location 中的指令会涉及一个 handler 模块和多个 filter 模块(当然,多个 location可以复用同一个模块)。handler 模块负责处理请求,完成响应内容的生成,而 filter 模块对响应内容进行处理。用户根据自己的需要所开发的模块都属于第三方模块。正是有了这么多模块的支撑, Nginx 的功能才会如此强大。 Nginx 的模块从结构上分为核心模块、基础模块和第三方模块: 1.核心模块:HTTP 模块、EVENT 模块和 MAIL 模块 2.基础模块:HTTP Access 模块、HTTP FastCGI 模块、HTTP Proxy 模块和 HTTP Rewrite 模块 3.第三方模块:HTTP Upstream Request Hash 模块、Notice 模块和 HTTP Access Key 模块 Nginx 的模块从功能上分为如下三类: 1.Handlers(处理器模块):此类模块直接处理请求

OpenResty的现状、趋势、使用及学习方法

流过昼夜 提交于 2019-11-25 20:19:58
温铭,奇虎 360 企业安全服务端架构师,OpenResty 社区咨询委员会成员。一直在互联网安全公司从事服务端的开发和架构工作,致力于用互联网技术帮助企业提高安全防护。曾负责开发过***云查杀和反钓鱼系统。 OpenResty 是什么,适合什么场景下使用 和大部分知名开源软件诞生在欧美国家不同,OpenResty 自身和依赖的主要组件都是金砖国家的开发者发明的,这点还挺有意思。 Nginx 是俄罗斯人发明的, Lua 是巴西几个教授发明的,中国人章亦春把 LuaJIT VM 嵌入到 Nginx 中,实现了 OpenResty 这个高性能服务端解决方案。 通过 OpenResty,你可以把 nginx 的各种功能进行自由拼接, 更重要的是,开发门槛并不高,这一切都是用强大轻巧的 Lua 语言来操控。 它主要的使用场景主要是: 在 Lua 中揉和和处理各种不同的 nginx 上游输出(Proxy,Postgres,Redis,Memcached 等) 在请求真正到达上游服务之前,Lua 可以随心所欲的做复杂的访问控制和安全检测 随心所欲的操控响应头里面的信息 从外部存储服务(比如 Redis,Memcached,MySQL,Postgres)中获取后端信息,并用这些信息来实时选择哪一个后端来完成业务访问 在内容 handler 中随意编写复杂的 Web 应用,使用 同步但依然非阻塞