以下对比基于 nginx/1.20.1和openresty/1.21.4.3,因为版本差异实际会有出入,仅供参考

Nginx 模块功能详解

默认禁用的模块(需要使用–with-选项启用)

模块功能描述
select_module提供基于select()的事件处理机制,在不支持更高效的事件处理机制的平台上使用
poll_module提供基于poll()的事件处理机制,是select的替代方案
threads启用线程池支持,可以将特定操作(如磁盘IO)放到单独的线程中处理
file-aio启用异步I/O文件操作支持,提高文件读写性能
http_ssl_module提供HTTPS支持,实现SSL/TLS加密通信
http_v2_module支持HTTP/2协议
http_realip_module修改客户端请求头中的客户端IP地址值
http_addition_module在响应前后添加文本内容
http_xslt_module使用XSLT转换XML响应
http_image_filter_module处理图片(调整大小、旋转、水印等)
http_geoip_module根据客户端IP地址确定地理位置
http_sub_module修改响应,用一个指定字符串替换另一个
http_dav_module提供WebDAV协议支持
http_flv_module为Flash Video (FLV)文件提供伪流媒体服务器支持
http_mp4_module为MP4文件提供伪流媒体服务器支持
http_gunzip_module为不支持"gzip"编码方法的客户端解压响应
http_gzip_static_module提供静态压缩支持,发送预压缩的.gz文件
http_auth_request_module基于子请求结果实现客户端授权
http_random_index_module从目录中随机选择一个文件作为索引文件
http_secure_link_module检查请求链接的真实性、保护资源免受未授权访问、限制链接有效期
http_degradation_module内存不足时允许返回特定错误码
http_slice_module将请求拆分为子请求,每个子请求返回响应的特定切片
http_stub_status_module提供对基本状态信息的访问

默认启用的模块(可以使用–without-选项禁用)

模块功能描述
http_charset_module添加指定的字符集到"Content-Type"响应头字段,可转换数据
http_gzip_module动态压缩HTTP响应,减少传输数据量
http_ssi_module处理服务器端包含(SSI)命令
http_userid_module设置适合客户端识别的cookie
http_access_module限制对特定客户端地址的访问
http_auth_basic_module通过HTTP基本认证协议验证用户名和密码
http_mirror_module将请求镜像到指定位置,用于流量复制和测试
http_autoindex_module处理以斜杠字符(‘/’)结尾的请求并生成目录列表
http_geo_module创建依赖于客户端IP地址的变量
http_map_module创建基于其他变量值的变量
http_split_clients_module创建A/B测试的变量
http_referer_module根据"Referer"请求头字段的值阻止对站点的访问
http_rewrite_module使用正则表达式改变请求URI并返回重定向,条件性地选择配置
http_proxy_module将请求传递到另一台服务器
http_fastcgi_module将请求传递到FastCGI服务器
http_uwsgi_module将请求传递到uwsgi服务器
http_scgi_module将请求传递到SCGI服务器
http_grpc_module将请求传递到gRPC服务器
http_memcached_module从memcached服务器获取响应
http_limit_conn_module限制并发连接数或下载速率
http_limit_req_module限制每个用户的请求处理速率
http_empty_gif_module在内存中常驻一个1x1像素的透明GIF,减少磁盘访问
http_browser_module创建依赖于"User-Agent"请求头值的变量
http_upstream_hash_module实现基于哈希的负载均衡方法
http_upstream_ip_hash_module实现基于客户端IP的负载均衡方法
http_upstream_least_conn_module实现选择具有最少活动连接的服务器的负载均衡方法
http_upstream_random_module实现随机选择服务器的负载均衡方法
http_upstream_keepalive_module为上游服务器保持缓存连接
http_upstream_zone_module为共享内存区域中的负载均衡配置提供支持

OpenResty 模块功能详解

OpenResty 是基于 Nginx 的高性能 Web 平台,集成了 LuaJIT,提供了许多额外的模块。以下是 OpenResty 中的模块功能详解。

OpenResty 特有的默认启用模块(可以使用 --without- 选项禁用)

模块功能描述
http_echo_module提供简单的 echo/sleep/time/exec 等指令,用于输出内容、延迟、获取时间和执行命令
http_xss_module用于跨站脚本过滤,可以通过正则表达式过滤请求参数
http_coolkit_module提供一系列小工具集合,如请求/响应时间计算、变量设置等
http_set_misc_module提供各种设置 Nginx 变量的工具,如正则替换、JSON 编码/解码等
http_form_input_module解析 POST 请求的表单数据,支持 application/x-www-form-urlencoded 和 multipart/form-data
http_encrypted_session_module提供加密会话数据的功能
http_srcache_module提供透明的服务器端缓存,支持从 Redis、Memcached 等后端存储中获取/存储响应
http_lua_module核心模块,将 Lua 嵌入到 Nginx 中,允许使用 Lua 脚本编写高级应用
http_lua_upstream_module通过 Lua API 操作 Nginx 的上游(upstream)模块
http_headers_more_module允许更改、添加或清除请求/响应头信息
http_array_var_module支持数组型变量
http_memc_module扩展的 Memcached 客户端,支持直接访问 Memcached 服务器
http_redis2_moduleRedis 2.0 协议客户端,用于直接访问 Redis 服务器
http_redis_moduleRedis 客户端,支持 Redis 的 GET/SET 等操作
http_rds_json_module将 Resty DBD 流(RDS)转换为 JSON 格式
http_rds_csv_module将 Resty DBD 流(RDS)转换为 CSV 格式
stream_lua_module在 Nginx 的 Stream 模块中使用 Lua 脚本
ngx_devel_kit_moduleNginx 开发工具包,为其他模块提供扩展功能
streamTCP/UDP 代理模块
http_ssl_module提供 HTTPS 支持
stream_ssl_module为 TCP/UDP 代理提供 SSL/TLS 加密支持

OpenResty 特有的默认禁用模块(需要使用 --with- 选项启用)

模块功能描述
http_iconv_module提供字符集转换功能
http_drizzle_module提供非阻塞 MySQL 客户端驱动,可与上游 MySQL 或 Drizzle 服务器通信
http_postgres_module提供 PostgreSQL 数据库访问功能

OpenResty 默认包含的 Lua 库(可以使用 --without- 选项禁用)

库功能描述
lua_cjson高性能的 JSON 编码/解码库
lua_tablepool提供 Lua 表池,优化表的重用和内存管理
lua_redis_parserRedis 响应解析器
lua_rds_parserRDS(Resty DBD Stream)解析器
lua_resty_dnsDNS 解析器
lua_resty_memcachedMemcached 客户端
lua_resty_redisRedis 客户端
lua_resty_mysqlMySQL 客户端
lua_resty_upload处理 multipart/form-data 文件上传
lua_resty_upstream_healthcheck上游健康检查工具
lua_resty_string字符串处理工具集
lua_resty_websocketWebSocket 支持
lua_resty_limit_traffic流量控制工具
lua_resty_lock分布式锁实现
lua_resty_lrucacheLRU 缓存实现
lua_resty_signal信号处理工具
lua_resty_shell执行外部命令的工具
lua_resty_core使用 LuaJIT FFI 优化的 Lua API 核心库

继承自 Nginx 的默认禁用模块(需要使用 --with- 选项启用,在openresty中部分启用了)

模块功能描述
select_module提供基于 select() 的事件处理机制
poll_module提供基于 poll() 的事件处理机制
threads线程池支持
file-aio异步 I/O 文件操作支持
http_v2_moduleHTTP/2 协议支持
http_realip_module修改客户端 IP 地址
http_addition_module在响应前后添加文本
http_xslt_moduleXML 文档转换
http_image_filter_module图像处理(调整大小、旋转等)
http_geoip_module基于 IP 地址确定地理位置
http_sub_module字符串替换
http_dav_moduleWebDAV 协议支持
http_flv_moduleFlash Video 伪流媒体服务
http_mp4_moduleMP4 伪流媒体服务
http_gunzip_module解压已压缩的内容
http_gzip_static_module静态压缩文件支持
http_auth_request_module基于子请求的身份验证
http_random_index_module随机选择索引文件
http_secure_link_module链接验证和保护
http_degradation_module当内存不足时返回特定错误码
http_slice_module将请求拆分为子请求
http_stub_status_module基本状态信息访问
http_perl_modulePerl 解释器支持
mailPOP3/IMAP4/SMTP 代理模块
stream_realip_module在流模块中修改客户端 IP 地址
stream_geoip_module在流模块中基于 IP 地址确定地理位置
stream_ssl_preread_module预读 SSL 连接信息
google_perftools_moduleGoogle 性能工具支持
cpp_test_moduleC++ 测试模块

继承自 Nginx 的默认启用模块(可以使用 --without- 选项禁用)

模块功能描述
http_charset_module字符集转换和添加字符集头
http_gzip_moduleHTTP 响应动态压缩
http_ssi_module服务器端包含 (SSI) 处理
http_userid_module客户端识别 Cookie 设置
http_access_module基于 IP 的访问控制
http_auth_basic_moduleHTTP 基本身份验证
http_mirror_module请求镜像,用于复制流量
http_autoindex_module目录列表生成
http_geo_module基于客户端 IP 创建变量
http_map_module创建基于其他变量值的变量
http_split_clients_moduleA/B 测试变量创建
http_referer_module基于 Referer 头的访问控制
http_rewrite_moduleURI 重写和重定向
http_proxy_moduleHTTP 代理
http_fastcgi_moduleFastCGI 代理
http_uwsgi_moduleuwsgi 代理
http_scgi_moduleSCGI 代理
http_grpc_modulegRPC 代理
http_memcached_moduleMemcached 响应获取
http_limit_conn_module连接数限制
http_limit_req_module请求速率限制
http_empty_gif_module内存中的 1x1 像素透明 GIF
http_browser_module基于 User-Agent 创建变量
http_upstream_hash_module哈希负载均衡
http_upstream_ip_hash_module基于 IP 的负载均衡
http_upstream_least_conn_module最少连接负载均衡
http_upstream_random_module随机选择负载均衡
http_upstream_keepalive_module上游连接池
http_upstream_zone_module共享内存区域中的负载均衡
stream_limit_conn_module流模块的连接数限制
stream_access_module流模块的访问控制
stream_geo_module流模块中基于客户端 IP 创建变量
stream_map_module流模块中创建基于其他变量值的变量
stream_split_clients_module流模块中的 A/B 测试变量创建
stream_return_module返回特定值到客户端
stream_upstream_hash_module流模块的哈希负载均衡
stream_upstream_least_conn_module流模块的最少连接负载均衡
stream_upstream_random_module流模块的随机选择负载均衡
stream_upstream_zone_module流模块的共享内存区域中的负载均衡
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐