OpenResty 1.27.1.2 执行 ./configure 时默认包含的模块,分「Nginx 原生核心模块」和「OpenResty 扩展模块」两类详细说明,同时标注核心模块的作用,方便理解默认配置的能力边界。
核心前提
OpenResty 的 ./configure 是基于 Nginx 的配置体系扩展的:
- 默认启用 Nginx 绝大多数核心模块(满足 HTTP/HTTPS/反向代理等基础能力);
- 内置 OpenResty 核心的 Lua 生态模块(这是 OpenResty 区别于原生 Nginx 的核心);
- 仅禁用少数「非核心、小众或需额外依赖」的模块(如 Perl 模块、特定媒体模块)。
一、默认启用的 Nginx 原生核心模块
这些模块是 Nginx 提供基础服务的核心,OpenResty 默认全部启用,无需手动指定:
1. 基础核心模块(必选,无法禁用)
| 模块类别 | 核心模块 | 作用说明 |
|---|---|---|
| 核心基础 | ngx_core_module | Nginx 核心配置(端口、进程、日志路径等) |
| 事件驱动 | ngx_event_core_module | 事件模型(epoll/kqueue 等,适配系统内核) |
| 配置加载 | ngx_conf_module | 解析 nginx.conf 配置文件 |
| 进程管理 | ngx_process_module | 主进程/工作进程管理 |
2. HTTP 核心模块(默认全部启用)
OpenResty 以 HTTP 服务为核心,默认启用所有关键 HTTP 模块:
| 模块名称 | 作用说明 |
|---|---|
ngx_http_core_module | HTTP 核心(请求解析、响应构建、location 匹配) |
ngx_http_access_module | 基于 IP/网段的访问控制(allow/deny) |
ngx_http_auth_basic_module | 基础 HTTP 账号密码认证 |
ngx_http_autoindex_module | 目录自动索引(访问空目录时显示文件列表) |
ngx_http_browser_module | 浏览器兼容处理(识别 User-Agent) |
ngx_http_charset_module | 响应字符集设置(如 charset utf-8) |
ngx_http_gzip_module | HTTP 响应 gzip 压缩(依赖 zlib 核心依赖) |
ngx_http_log_module | 访问日志/错误日志记录 |
ngx_http_proxy_module | HTTP 反向代理(核心能力,对接后端服务) |
ngx_http_rewrite_module | URL 重写(正则匹配、跳转,依赖 PCRE) |
ngx_http_static_module | 静态文件服务(html/css/js 等) |
ngx_http_index_module | 默认首页(index index.html index.lua) |
ngx_http_ssl_module | HTTPS/SSL/TLS 支持(依赖 OpenSSL) |
ngx_http_upstream_module | 上游服务管理(负载均衡、后端节点配置) |
ngx_http_cache_module | 响应缓存(基于磁盘的缓存机制) |
ngx_http_headers_module | 响应头/请求头基础设置(非扩展版) |
3. Stream 核心模块(默认启用)
OpenResty 1.27+ 默认启用 Stream 模块(TCP/UDP 代理能力):
| 模块名称 | 作用说明 |
|---|---|
ngx_stream_core_module | Stream 核心(TCP/UDP 连接处理) |
ngx_stream_ssl_module | Stream 层 SSL/TLS 加密(如 MySQL/Redis 加密代理) |
ngx_stream_proxy_module | TCP/UDP 反向代理 |
ngx_stream_upstream_module | Stream 上游负载均衡 |
二、OpenResty 默认内置的扩展模块(核心差异化能力)
这些是 OpenResty 打包的自研模块,默认全部启用,也是 Lua 开发的基础:
| 模块名称 | 作用说明 |
|---|---|
ngx_devel_kit (NDK) | OpenResty 模块开发工具包(其他扩展模块依赖) |
ngx_lua_module | HTTP 层 Lua 脚本核心模块(OpenResty 核心) |
ngx_stream_lua_module | Stream 层 Lua 脚本模块(TCP/UDP 层用 Lua) |
echo-nginx-module | 快速输出响应、调试(echo 指令) |
set-misc-nginx-module | 扩展变量处理(如 base64、哈希、JSON 转义) |
headers-more-nginx-module | 增强头信息处理(修改/清除响应头,比原生强大) |
srcache-nginx-module | 响应缓存增强(配合 Lua 实现精细化缓存) |
redis-nginx-module | Redis 同步访问模块(直接在 Nginx 层操作 Redis) |
redis2-nginx-module | Redis 全协议支持(支持复杂命令如 MULTI/EXEC) |
memc-nginx-module | Memcached 操作模块 |
array-var-nginx-module | 数组变量处理(Lua 外的补充) |
encrypted-session-nginx-module | 加密会话管理 |
form-input-nginx-module | 表单数据解析(POST 表单处理) |
三、默认禁用的模块(需手动启用)
以下模块 OpenResty 默认不启用,需通过 ./configure --with-xxx 手动开启:
- 小众功能模块:
ngx_http_perl_module(Perl 脚本)、ngx_http_flv_module(FLV 流媒体)、ngx_http_mp4_module(MP4 流媒体); - 需额外依赖的模块:
ngx_http_geoip_module(GeoIP 地域解析,需 GeoIP 库)、ngx_http_xslt_filter_module(XML 转换,需 libxml2); - 实验性/旧版模块:
ngx_http_echo_module之外的小众调试模块、旧版兼容模块。
四、如何验证当前配置的模块列表
如果你想确认自己执行 ./configure 后实际启用的模块,有 2 种方法:
方法 1:编译后查看 Nginx 版本信息
# 进入安装目录
cd /opt/openresty-1.27.1.2/nginx/sbin
# 查看编译参数(包含所有启用/禁用的模块)
./nginx -V
输出中会显示 --add-module(OpenResty 扩展模块)、--with-xxx(启用的模块)、--without-xxx(禁用的模块)。
方法 2:查看 configure 帮助文档
# 进入 OpenResty 源码目录
cd /opt/tmp/openresty-1.27.1.2
# 查看所有可配置的模块(标注默认状态)
./configure --help
总结
- OpenResty 默认启用 Nginx 核心 HTTP/Stream 模块(满足基础反向代理、静态服务、HTTPS)+ OpenResty Lua 生态模块(核心差异化能力);
- 仅禁用「非核心、需额外依赖或小众」的模块,无需手动配置即可满足 99% 的常规场景(如 API 网关、反向代理、Lua 脚本开发);
- 验证模块配置的核心方法是编译后执行
nginx -V,可精准查看当前启用的所有模块。