lolly/docs/lua-nginx-module/00-overview.md
xfy 941c44b798 docs: 添加 Lua 嵌入分析文档
- 新增 lua-embed-analysis.md 技术分析文档
- 新增 lua-nginx-module 文档目录
- 更新 gitignore 允许跟踪 docs/lua-nginx-module/

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 11:20:57 +08:00

84 lines
3.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# lua-nginx-module 概述
本文档为 lolly 项目提供 lua-nginx-module 的完整功能参考,帮助理解 OpenResty 核心模块的架构和实现。
## 模块简介
lua-nginx-module 是 OpenResty 的核心模块,将 Lua/LuaJIT 嵌入到 Nginx 中,通过协程实现非阻塞 I/O让开发者可以用 Lua 编写高性能 Web 应用。
## 核心特性
| 特性 | 说明 |
|------|------|
| **非阻塞 I/O** | 通过 Lua 协程 + Nginx 事件循环实现 |
| **多阶段处理** | 支持 Nginx 11 个请求处理阶段 |
| **共享内存** | Worker 间共享数据字典 |
| **Cosocket** | 非阻塞 TCP/UDP socket API |
| **动态负载均衡** | Lua 控制上游服务器选择 |
| **SSL/TLS 扩展** | 动态证书、Session 缓存自定义 |
## 文档目录
| 文档 | 内容 |
|------|------|
| [01-directives.md](./01-directives.md) | 所有配置指令详解 |
| [02-lua-api.md](./02-lua-api.md) | ngx.* Lua API 参考 |
| [03-cosocket.md](./03-cosocket.md) | 非阻塞 Socket API |
| [04-timer-thread.md](./04-timer-thread.md) | 定时器和用户线程 |
| [05-shdict.md](./05-shdict.md) | 共享内存字典 |
| [06-ssl.md](./06-ssl.md) | SSL/TLS 功能 |
| [07-subrequest.md](./07-subrequest.md) | 内部子请求 |
| [08-balancer.md](./08-balancer.md) | 负载均衡 |
| [09-filter.md](./09-filter.md) | 过滤器链 |
| [10-code-cache.md](./10-code-cache.md) | 代码缓存与异常处理 |
| [11-architecture.md](./11-architecture.md) | 核心架构设计 |
## 源码结构
```
lua-nginx-module/
├── src/
│ ├── ngx_http_lua_module.c # 主模块定义
│ ├── ngx_http_lua_common.h # 核心数据结构
│ ├── ngx_http_lua_directive.c # 指令解析
│ ├── ngx_http_lua_util.c # 工具函数
│ ├── ngx_http_lua_ctx.c # 请求上下文
│ ├── ngx_http_lua_cache.c # 代码缓存
│ ├── ngx_http_lua_coroutine.c # 协程管理
│ │
│ # Phase Handlers
│ ├── ngx_http_lua_contentby.c
│ ├── ngx_http_lua_accessby.c
│ ├── ngx_http_lua_rewriteby.c
│ ├── ngx_http_lua_headerfilterby.c
│ ├── ngx_http_lua_bodyfilterby.c
│ │
│ # Network
│ ├── ngx_http_lua_socket_tcp.c
│ ├── ngx_http_lua_socket_udp.c
│ ├── ngx_http_lua_subrequest.c
│ │
│ # Memory
│ ├── ngx_http_lua_shdict.c
│ │
│ # SSL
│ ├── ngx_http_lua_ssl_certby.c
│ ├── ngx_http_lua_ssl_session_storeby.c
│ │
│ # Timer & Thread
│ ├── ngx_http_lua_timer.c
│ ├── ngx_http_lua_uthread.c
│ ├── ngx_http_lua_semaphore.c
│ │
│ └── api/
│ └── ngx_http_lua_api.h # 公共 API 头文件
├── t/ # 测试用例 (Test::Nginx)
└── util/ # 工具脚本
```
## 版本信息
- 版本: v0.10.29
- 发布日期: 2025-10-24
- 测试用例: 228 个文件, 10,000+ 用例