nginx和openresty默认模块对比
·
文章目录
以下对比基于 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_module | Redis 2.0 协议客户端,用于直接访问 Redis 服务器 |
| http_redis_module | Redis 客户端,支持 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_module | Nginx 开发工具包,为其他模块提供扩展功能 |
| stream | TCP/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_parser | Redis 响应解析器 |
| lua_rds_parser | RDS(Resty DBD Stream)解析器 |
| lua_resty_dns | DNS 解析器 |
| lua_resty_memcached | Memcached 客户端 |
| lua_resty_redis | Redis 客户端 |
| lua_resty_mysql | MySQL 客户端 |
| lua_resty_upload | 处理 multipart/form-data 文件上传 |
| lua_resty_upstream_healthcheck | 上游健康检查工具 |
| lua_resty_string | 字符串处理工具集 |
| lua_resty_websocket | WebSocket 支持 |
| lua_resty_limit_traffic | 流量控制工具 |
| lua_resty_lock | 分布式锁实现 |
| lua_resty_lrucache | LRU 缓存实现 |
| 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_module | HTTP/2 协议支持 |
| http_realip_module | 修改客户端 IP 地址 |
| http_addition_module | 在响应前后添加文本 |
| http_xslt_module | XML 文档转换 |
| http_image_filter_module | 图像处理(调整大小、旋转等) |
| http_geoip_module | 基于 IP 地址确定地理位置 |
| http_sub_module | 字符串替换 |
| http_dav_module | WebDAV 协议支持 |
| http_flv_module | Flash Video 伪流媒体服务 |
| http_mp4_module | MP4 伪流媒体服务 |
| 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_module | Perl 解释器支持 |
| POP3/IMAP4/SMTP 代理模块 | |
| stream_realip_module | 在流模块中修改客户端 IP 地址 |
| stream_geoip_module | 在流模块中基于 IP 地址确定地理位置 |
| stream_ssl_preread_module | 预读 SSL 连接信息 |
| google_perftools_module | Google 性能工具支持 |
| cpp_test_module | C++ 测试模块 |
继承自 Nginx 的默认启用模块(可以使用 --without- 选项禁用)
| 模块 | 功能描述 |
|---|---|
| http_charset_module | 字符集转换和添加字符集头 |
| http_gzip_module | HTTP 响应动态压缩 |
| http_ssi_module | 服务器端包含 (SSI) 处理 |
| http_userid_module | 客户端识别 Cookie 设置 |
| http_access_module | 基于 IP 的访问控制 |
| 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 代理 |
| 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 | 共享内存区域中的负载均衡 |
| 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 | 流模块的共享内存区域中的负载均衡 |
更多推荐


所有评论(0)