全书目录

第五十四篇:OpenResty 完全指南 —— 可编程网关锻造厂宇宙

一、先把宇宙地图画出来

1 分钟 108 字 第 936 / 962 个阅读单元

先看结构:

text
+------------------------------------------------------+
|                    OpenResty                         |
|  +-----------------------------------------------+   |
|  |                  Nginx Core                   |   |
|  |  event loop / worker / upstream / phases      |   |
|  +-----------------------------------------------+   |
|  |              lua-nginx-module                 |   |
|  |  *_by_lua / ngx API / cosocket / subrequest   |   |
|  +-----------------------------------------------+   |
|  |                  LuaJIT                       |   |
|  |  JIT / coroutine / FFI / lightweight runtime  |   |
|  +-----------------------------------------------+   |
|  |           lua-resty-* libraries               |   |
|  |  redis / mysql / http / dns / lock / limit    |   |
|  +-----------------------------------------------+   |
+------------------------------------------------------+

很多人第一眼会误判成:

text
OpenResty = Nginx + Lua

这句话只对了一半。更准确地说:

text
OpenResty = Nginx 事件模型 + LuaJIT 运行时 + ngx_lua 执行插槽 + 一批非阻塞库

这里最关键的是“事件模型”和“非阻塞”。

因为 OpenResty 强的不是“能写脚本”,而是“在 Nginx 的高并发调度里写脚本”。