什么是OpenResty

admin 轻心小站 关注 LV.19 运营
发表于openresty交流版块 教程

OpenResty是一个成熟的网络平台,它集成了标准的Nginx核心,LuaJIT,许多精心编写的Lua库,许多高质量的第三方Nginx模块以及大多数外部依赖项。它旨在帮助开发人员轻松构建可伸缩的We

OpenResty是一个成熟的网络平台,它集成了标准的Nginx核心,LuaJIT,许多精心编写的Lua库,许多高质量的第三方Nginx模块以及大多数外部依赖项。它旨在帮助开发人员轻松构建可伸缩的Web应用程序,Web服务和动态Web网关。

通过利用各种精心设计的Nginx模块(其中大部分由OpenResty团队自己开发),OpenResty有效地将nginx服务器转变为功能强大的Web应用服务器,其中Web开发人员可以使用Lua编程语言编写各种脚本现有的nginx C模块和Lua模块,构建极高性能的Web应用程序,能够在一个盒子中处理10K~1000K +连接。

OpenResty旨在完全在Nginx服务器中运行您的服务器端Web应用程序,利用Nginx的事件模型不仅可以与HTTP客户端进行非阻塞I / O,还可以使用MySQL,PostgreSQL,Memcached和Redis等远程后端。

OpenResty的实际应用包括动态Web门户和Web网关,Web应用防火墙,用于移动应用/广告/分布式存储/数据分析的Web服务平台,以及成熟的动态Web应用和网站。用于运行OpenResty的硬件范围从非常大的金属到资源非常有限的嵌入式设备。我们的生产用户每天只需少量机器就能为数百万活跃用户提供数十亿的请求,这种情况并不少见。

OpenResty不是Nginx分支。它只是一个软件包。在OpenResty中应用于Nginx核心的大多数补丁已经提交给官方的Nginx团队,并且提交的大多数补丁也已被接受。我们正在努力不分叉Nginx并始终使用官方Nginx团队中最新的最佳Nginx核心。


模块

核心模块

核心模块捆绑在OpenResty包中。

  • ngx_openresty - 将Nginx变成一个成熟的Web应用服务器 - OpenResty Bundle Generation的来源

  • lua-nginx-module - 将Lua的强大功能嵌入到Nginx中

  • stream-lua-nginx-module - 将Lua的强大功能嵌入到Nginx流/ TCP服务器中

  • echo-nginx-module - 一个Nginx模块,用于为Nginx的配置文件带来“echo”,“sleep”,“time”等功能

  • xss-nginx-module - 对nginx中的跨站点脚本(XSS)的本机支持

  • set-misc-nginx-module - 将各种set_xxx指令添加到nginx的重写模块(md5 / sha1,sql / json引用等等)

  • encrypted-session-nginx-module - 加密和解密Nginx变量值

  • srcache-nginx-module - 任意nginx位置的基于透明子请求的缓存布局

  • lua-upstream-nginx-module - Nginx C模块,用于向Nginx上游的ngx_lua公开Lua API

  • headers-more-nginx-module - 设置并清除输入和输出标题...超过“添加”!

  • array-var-nginx-module - 将对数组变量的支持添加到nginx配置文件中

  • memc-nginx-module - 标准memcached模块的扩展版本,支持set,add,delete和更多memcached命令

  • redis2-nginx-module - Redis 2.0协议的Nginx上游模块

  • rds-json-nginx-module - 一个nginx输出过滤器,用于格式化由ngx_drizzle和其他人生成的Resty DBD Streams到JSON

  • rds-csv-nginx-module - 用于将Resty-DBD-Streams(RDS)转换为逗号分隔值(CSV)的Nginx输出过滤器模块

  • drizzle-nginx-module - 一个Nginx上游模块,它通过libdrizzle与mysql和细雨进行对话

  • ngx_postgres - 允许Nginx直接与PostgreSQL数据库通信的上游模块

  • form-input-nginx-module - 这是一个nginx模块,它读取在“application / x-www-form-urlencoded”中编码的HTTP POST和PUT请求体,并将请求体中的参数解析为nginx变量。

  • ngx_coolkit - 小而有用的nginx附加组件的集合

  • ngx_devel_kit - 一个Nginx模块,它添加了模块开发人员可以在自己的模块中使用的其他通用工具

另请注意,restyOpenResty包中包含命令行客户端。该命令行客户机的来源可以在Github找到。

 

核心Nginx模块

要了解有关Nginx核心模块的更多信息,请参阅Nginx文档。Nginx附带的一些模块(并非所有模块都默认构建):

  • ngx_http_core_module

  • ngx_http_ssl_module - ngx_http_ssl_module模块为HTTPS提供必要的支持

  • ngx_http_v2_module - ngx_http_v2_module模块提供对HTTP / 2的支持

  • ngx_http_realip_module - ngx_http_realip_module模块用于将客户端地址和可选端口更改为在指定的头字段中发送的端口

  • ngx_http_addition_module - ngx_http_addition_module模块是一个过滤器,用于在响应之前和之后添加文本

  • ngx_http_xslt_module - ngx_http_xslt_module是一个使用一个或多个XSLT样式表转换XML响应的过滤器

  • ngx_http_image_filter_module - ngx_http_image_filter_module模块是一个过滤器,可以转换JPEG,GIF和PNG格式的图像

  • ngx_http_geoip_module - ngx_http_geoip_module模块使用预编译的MaxMind数据库创建具有取决于客户端IP地址的值的变量

  • ngx_http_sub_module - ngx_http_sub_module模块是一个过滤器,它通过用另一个指定的字符串替换一个指定的字符串来修改响应

  • ngx_http_dav_module - ngx_http_dav_module模块用于通过WebDAV协议实现文件管理自动化。该模块处理HTTP和WebDAV方法PUT,DELETE,MKCOL,COPY和MOVE

  • ngx_http_flv_module - ngx_http_flv_module模块为Flash Video(FLV)文件提供伪流服务器端支持

  • ngx_http_mp4_module - ngx_http_mp4_module模块为MP4文件提供伪流服务器端支持。此类文件通常具有.mp4,.m4v或.m4a文件扩展名

  • ngx_http_gunzip_module - ngx_http_gunzip_module模块是一个过滤器,它使用“Content-Encoding:gzip”解压缩响应,用于不支持“gzip”编码方法的客户端。当需要存储压缩数据以节省空间并降低I / O成本时,该模块将非常有用

  • ngx_http_gzip_static_module - ngx_http_gzip_static_module模块允许发送带有“.gz”文件扩展名的预压缩文件,而不是常规文件

  • ngx_http_auth_request_module - ngx_http_auth_request_module模块根据子请求的结果实现客户端授权

  • ngx_http_random_index_module - ngx_http_random_index_module模块处理以斜杠字符('/')结尾的请求,并在目录中选择一个随机文件作为索引文件

  • ngx_http_secure_link_module - ngx_http_secure_link_module模块(0.7.18)用于检查请求链路的真实性,保护资源免受未经授权的访问,并限制链路生存期

  • ngx_http_slice_module - ngx_http_slice_module模块是一个过滤器,它将请求拆分为子请求,每个子请求返回一定范围的响应

  • ngx_http_stub_status_module - ngx_http_stub_status_module模块提供对基本状态信息的访问

  • ngx_http_charset_module - ngx_http_charset_module模块将指定的字符集添加到“Content-Type”响应头字段

  • ngx_http_gzip_module - ngx_http_gzip_module模块是一个使用“gzip”方法压缩响应的过滤器

  • ngx_http_ssi_module - ngx_http_ssi_module模块是一个过滤器,用于处理通过它的响应中的SSI(服务器端包含)命令

  • ngx_http_userid_module - ngx_http_userid_module模块设置适合客户端识别的cookie

  • ngx_http_access_module - ngx_http_access_module模块允许限制对某些客户端地址的访问

  • ngx_http_auth_basic_module - ngx_http_auth_basic_module模块允许通过使用“HTTP基本身份验证”协议验证用户名和密码来限制对资源的访问

  • ngx_http_autoindex_module - ngx_http_autoindex_module模块处理以斜杠字符('/')结尾的请求,并生成目录列表

  • ngx_http_geo_module - ngx_http_geo_module模块使用取决于客户端IP地址的值创建变量

  • ngx_http_map_module - ngx_http_map_module模块创建的变量的值取决于其他变量的值

  • ngx_http_split_clients_module - ngx_http_split_clients_module模块创建适合A / B测试的变量,也称为拆分测试

  • ngx_http_referer_module - ngx_http_referer_module模块用于阻止对“Referer”头字段中具有无效值的请求访问站点

  • ngx_http_rewrite_module - ngx_http_rewrite_module模块用于使用PCRE正则表达式更改请求URI,返回重定向,并有条件地选择配置

  • ngx_http_proxy_module - ngx_http_proxy_module模块允许将请求传递到另一台服务器

  • ngx_http_fastcgi_module - ngx_http_fastcgi_module模块允许将请求传递给FastCGI服务器

  • ngx_http_uwsgi_module - ngx_http_uwsgi_module模块允许将请求传递给uwsgi服务器

  • ngx_http_scgi_module - ngx_http_scgi_module模块允许将请求传递给SCGI服务器

  • ngx_http_memcached_module - he ngx_http_memcached_module模块用于从memcached服务器获取响应

  • ngx_http_limit_conn_module - ngx_http_limit_conn_module模块用于限制每个定义密钥的连接数,特别是来自单个IP地址的连接数

  • ngx_http_limit_req_module - he ngx_http_limit_req_module模块用于限制每个定义密钥的请求处理速率,特别是来自单个IP地址的请求的处理速率

  • ngx_http_empty_gif_module - ngx_http_empty_gif_module模块发出单像素透明GIF

  • ngx_http_browser_module - ngx_http_browser_module模块创建的变量的值取决于“User-Agent”请求标头字段的值

  • ngx_http_upstream_module - http://nginx.org/en/docs/http/ngx_http_upstream_module.html

  • ngx_http_perl_module - ngx_http_perl_module模块用于在Perl中实现位置和变量处理程序,并将Perl调用插入SSI

  • ngx_mail_core_module

  • ngx_mail_ssl_module - ngx_mail_ssl_module模块为邮件代理服务器提供必要的支持,以使用SSL / TLS协议

  • ngx_mail_smtp_module

  • ngx_mail_imap_module

  • ngx_mail_pop3_module

  • ngx_stream_core_module

  • ngx_stream_ssl_module - ngx_stream_ssl_module模块为流代理服务器提供必要的支持,以使用SSL / TLS协议

  • ngx_stream_proxy_module - ngx_stream_proxy_module模块允许通过TCP,UDP和UNIX域套接字代理数据流

第三方Nginx模块

  • ngx_lua_ipc - Lua Nginx模块和OpenResty的进程间通信 - 在Nginx工作进程之间发送带有字符串数据的命名警报

  • nchan(Github) - 用于HTTP,长轮询,Websockets和EventSource(SSE)的快速,水平可伸缩,多进程发布/ 订阅队列服务器和代理

  • ngx_pagespeed(Github) - Nginx的自动PageSpeed优化模块

  • ModSecurity - 开源Web应用程序防火墙

  • NAXSI - NAXSI是NGINX的开源,高性能,低规则维护WAF; NAXSI意味着Nginx Anti Xss和Sql Injection

  • nginx-upsync-module - Nginx C模块,从consul或其他人同步上游,动态调整后端服务器权重,无需重新加载nginx

  • sass-nginx-module - 语法上令人敬畏的Nginx模块

  • 更多第三方模块

核心库

核心库捆绑在OpenResty包中,您无需单独安装它们。

  • lua-resty-core - 用于ngx_lua模块的基于FFI的新Lua API

  • lua-resty-upstream-healthcheck - Pure Lua中Nginx上游服务器的健康检查程序

  • lua-resty-string - ngx_lua和LuaJIT的字符串实用程序和公共散列函数

  • lua-resty-lock - 基于共享内存字典的ngx_lua的简单非阻塞锁定API

  • lua-resty-lrucache - 基于LuaJIT FFI的Lua-land LRU Cache

  • lua-resty-dns - Nginx Lua模块的DNS解析器

  • lua-resty-resolver - 为ngx_lua和LuaJIT缓存DNS解析器

  • lua-resty-upload - 基于ngx_lua cosocket的HTTP文件上传的流式读取器和解析器

  • lua-resty-websocket - 用于ngx_lua模块的Lua WebSocket实现

  • lua-resty-mysql - 基于cosocket API的非阻塞Lua MySQL客户端驱动程序,用于ngx_lua

  • lua-resty-memcached - 基于cosocket API的nga_lua的Lua memcached客户端驱动程序

  • lua-resty-redis - 基于cosocket API的ngx_lua的Lua Redis客户端驱动程序

  • lua-redis-parser - Redis回复解析器并请求Lua的构造函数库

  • lua-rds-parser - 用C语言编写的Lua的Resty-DBD-Stream(RDS)解析器

  • lua-cjson - Lua cJSON是Lua的快速JSON编码/解析模块

  • lua-resty-shdict-simple - 简单的面向应用程序的OpenResty共享字典API接口

  • lua-resty-memcached-shdict - 具有shdict缓存层和许多其他功能的强大memcached客户端

网络框架

  • Lapis - Lapis是一个使用MoonScript或Lua构建Web应用程序的框架,它在Nginx的定制版本中运行,称为OpenResty

  • lor(Github) - 基于OpenResty的快速简约的Web框架

  • Vanilla - 一个OpenResty Web框架

  • luastar - 基于OpenResty的HTTP服务器和Web框架

  • Lusty - Lua RESTful Web应用程序框架,一个可扩展且快速的Web框架

  • GIN - 具有测试驱动开发助手和模式的快速,低延迟,低内存占用空间的Web JSON-API框架

  • Quick Server - 基于OpenResty的服务器框架

  • Sailor - Lua MVC Web框架

  • lua-resty-rack - 一个简单且可扩展的OpenResty HTTP服务器框架

  • MOOCHINE - 基于OpenResty的简单轻量级Web框架

  • sinatra-openresty - Sinatra移植到OpenResty框架

  • lj-web - 基于ngx_openresty的轻量级Web框架

  • Gimlet Cocktail - 由Martini&Sinatra启发的Moonscript编写的OpenResty微博客应用程序框架

  • durap - Durap是一个基于OpenResty的Lua Web框架。

  • Ziggy Stardust - Ziggy Stardust(或者只是“stardust”)是一个简单的nginx / Lua框架,灵感来自Sinatra,Express和Mercury

  • zLua - 一个基于OpenResty的Luign框架的Codeigniter

  • lua-resty-stack - OpenResty简单应用程序堆栈

  • dodolu - 基于OpenResty的轻量级Web框架

  • Octopus - Lua网络平台

  • vicky - 一个宁静的openresty框架,受到expressjs和koa的启发。

Web开发基础

  • lua-resty-url - OpenResty的 URL解析器

  • lua-resty-cookie - 用于OpenResty / ngx_lua的HTTP cookie操作的Lua库

  • lua-resty-cors - OpenResty的跨源资源共享(CORS)实现

  • lua-resty-session - OpenResty实现安全Cookie协议的会话库

  • lua-resty-woothee - Project Woothee的Lua-Openresty实现,它是一个多语言用户代理字符串解析器

  • lua-resty-mobile - 此库解析HTTP标头并检测移动设备

  • lua-resty-jwt - 用于The Great OpenResty的JWT(JSON Web令牌)

  • neturl - Lua的URL和查询字符串解析器,构建器,规范化程序

  • Mio - 基于OpenResty的NGINX中的API统计/摘要和健康数据,就像NGINX Plus一样

路由库

  • lua-resty-route - OpenResty的 URL路由库,支持多个路由匹配器,中间件,HTTP和WebSockets处理程序,提及它的一些功能

  • router.lua - Lua的准系统路由器,它匹配URL并执行Lua功能

  • lua-resty-r3 - libr3 OpenResty实现,libr3是一个高性能的路径调度库。它将您的路径路径编译为前缀树(trie)。通过在启动时使用构造的前缀trie,您可以有效地调度路径

请求分段解析器

  • lua-resty-reqargs - Helper检索application / x-www-form-urlencoded,multipart / form-data和application / json Request Arguments

  • lua-resty-post - 用于OpenResty的HTTP Post实用程序(文件上载帮助程序)

  • lua-resty-multipart-parser - OpenResty / Lua的简单多部分数据解析器

  • lua-resty-multipart - OpenResty的多部分解析库

中间件和API工具

  • Kong(GitHub) - KONG:微服务管理层(安全,管理和扩展您的API和微服务)

  • LSSO - Nginx + Lua的轻量级SSO中间件

  • apigateway - 基于Nginx和OpenResty的Performant API网关

  • 3scale APIcast - Red Hat 3scale API Management的API网关模块

  • Sumory Orange - API网关

  • Monarch API Gateway - 基于OpenResty的API网关

模板

  • lua-resty-template - Lua和OpenResty的编译(HTML)模板引擎

  • lemplate - 实现Perl的TT2模板语言的OpenResty / Lua模板框架

  • etlua - 嵌入式Lua模板

  • liquid-lua - 用于OpenResty平台的Liquid的Lua实现

  • lua-resty-tmpl - Lua和OpenResty的简单模板引擎,源自lua-template。

  • Alternatives - 一些替代Lua模板解决方案可以与OpenResty一起使用

验证

  • lua-resty-validation - Lua和OpenResty的可扩展链接验证和过滤库

  • valua - 验证lua!用于进行链式验证的模块。创建对象,附加测试,使用和重用它!

身份验证和授权

  • lua-resty-macaroons - LuaJIT FFI绑定到libmacaroons - Macaroons是灵活的授权凭证,支持分散委派,衰减和验证

  • lua-resty-openidc - lua-resty-openidc是NGINX实现OpenID Connect依赖方(RP)和OAuth 2.0资源服务器(RS)功能的库

  • lua-resty-duo-mobile - Duo Mobile Auth API的OpenResty客户端

  • micro-auth - 一种微服务,可以轻松地将Google和Github的身份验证添加到您的应用程序中(注意:在生产中使用它之前,请参阅:https://news.ycombinator.com/item ? id = 13682682 - 希望我们可以删除此未来的评论)

加密

  • lua-resty-string - ngx_lua和LuaJIT的字符串实用程序和公共散列函数

  • lua-resty-nettle - 用于Nettle的LuaJIT FFI绑定(一个低级加密库)

  • lua-resty-chash - OpenResty / Lua的通用一致哈希实现

  • lua-resty-jump-consistent-hash - 为LuaJIT跳转一致哈希

  • lua-resty-letsencrypt - 使用LetsEncrypt CA自动获取和续订TLS证书。

  • lua-resty-auto-ssl - 使用Let的加密在OpenResty / nginx内进行即时(和免费)SSL注册和续订

  • lua-resty-peter_sslers - 基于来自缓存或后端json服务器的SNI自动加载/缓存SSL证书

  • lua-resty-murmurhash2 - LuaJIT MurmurHash 2绑定到Nginx / OpenResty murmurhash2实现

  • lua-resty-hmac - 用于制作和接收hmac签名请求的Lua驱动程序

  • lua-resty-scrypt - LuaJIT基于FFI的OpenResty scrypt库

  • lua-resty-xxhash - LuaJIT FFI绑定到xxHash,一种非常快速的非加密哈希算法

  • lua-resty-rsa - LuaJIT的 RSA功能

  • lua-resty-aead - 用于lua-nginx模块的AEAD密码库。仅限BoringSSL。

  • lua-resty-hawk - 使用Lua和OpenResty对Nginx进行Hawk身份验证

  • lua-resty-urandom - 用于Linux / BSD内核空间CSPRNG的缓冲包装器

  • lua-resty-fastpbkdf2 - Lua绑定到fastpbkdf2

  • lua-argon2-ffi - 用于Argon2密码哈希算法的LuaJIT FFI绑定

  • lua-resty-des - 用于进行DES ECB加密的Lua接口

  • WXBizMsgCrypt - 微信消息密码学的Lua版本

联网

  • LUA-resty-HTTP通过@pintsized -为lua HTTP客户端cosocket驱动OpenResty / ngx_lua

  • lua- resty-HTTP通过@liseen -基于cosocket API为ngx_lua Lua的HTTP客户端驱动程序

  • lua- resty-HTTP通过@DorianGray -基于cosocket API为ngx_lua Lua的HTTP客户端驱动程序

  • lua-resty-http-simple - 用于ngx_lua的简单Lua HTTP客户端驱动程序

  • lua-resty-httpipe - 用于OpenResty / ngx_lua的Lua HTTP客户端cosocket驱动程序

  • lua-resty-httpclient - 用于aLiLua&ngx_lua的非阻塞Lua HTTP客户端库

  • lua-httpcli-resty - 用于OpenResty的Lua HTTP客户端模块

  • lua-resty-requests - 另一个OpenResty的HTTP库

  • lua-resty-websocket - 用于ngx_lua模块的Lua WebSocket实现

  • lua-resty-mediador - 确定代理请求的地址并执行IP地址/ CIDR块处理(IPv4和IPv6)

  • lua-resty-iputils - 用于在OpenResty中处理IP地址的实用程序函数

  • lua-resty-readurl - 用于捕获URL,解码和记录结果的Lua库

  • lua-resty-dns-client - 包含DNS客户端,多个实用程序和负载均衡器的Lua库

  • lua-resty-upstream - 上游连接负载均衡和故障转移模块

  • lua-resty-checkups - 在纯ngx_lua中管理Nginx上游

  • lua-resty-socks5 - 基于cosocket API的ngx_lua的Lua SOCKS5客户端

  • lua-resty-waf - 基于OpenResty堆栈构建的高性能WAF

  • lua-resty-tarpit - OpenResty响应时间膨胀,捕获和延迟不需要的请求

  • lua-resty-jsonrpc-batch - 用于OpenResty的JSON-RPC 2.0批处理请求协议模块

  • lua-resty-limit-traffic - 用于限制和控制OpenResty / ngx_lua中流量的 Lua库

  • lua-resty-limits - 每秒或每分钟限制请求

  • lua-resty-fastcgi - 基于cosocket API的ngx_lua的Lua FCGI客户端驱动程序

  • lua-resty-ftpclient - 基于cosocket API的ngx_lua的Lua FTP客户端驱动程序

  • lua-capnproto - Cap'n Proto是一种疯狂快速的数据交换格式和基于功能的RPC系统

  • lua-resty-tornera - 一个流量重放工具,带有易于使用的HTTP API,适用于OpenResty / LuaJIT

  • lua-resty-consul - 与ngx_lua的consul HTTP API接口的库

  • lua-resty-healthcheck - 用于OpenResty的Healthcheck库,用于验证上游服务状态

  • lua-resty-balancer - OpenResty的通用一致哈希实现

  • lua-resty-sniproxy - 基于stream-lua-nginx-module的SNI代理

  • lua-resty-multiplexer - 流子系统的透明端口服务多路复用器

  • lua-resty-http2 - OpenResty的HTTP / 2协议(客户端)实现

数据库和存储

  • lua-resty-mysql - 基于cosocket API的非阻塞Lua MySQL客户端驱动程序,用于ngx_lua

  • lua-resty-mysql-connector - lua-resty-mysql的连接实用程序,支持读写分离,支持实例化不同的数据库

  • lua-resty-postgres - 用于ngx_lua的非阻塞Lua PostgreSQL驱动程序库

  • pgmoon - 用于OpenResy等的纯Lua Postgres驱动程序

  • lua-resty-couchbase - OpenResty CouchBase模块

  • lua-resty-couchdb - 使用nginx代理ngx.location_capture的Lua resty最小couchdb客户端

  • lua-resty-orm - OpenResty的简单ORM

  • lua-resty-mvc - 你不需要那个复杂的MVC框架!只有一个带有几个简单文件的普通文件夹,您可以享受基本但最常用的MVC功能。

  • lua-resty-memcached - 基于cosocket API的nga_lua的Lua memcached客户端驱动程序

  • lua-resty-redis - 基于cosocket API的ngx_lua的Lua Redis客户端驱动程序

  • lua-resty-redis-connector - 用于lua-resty-redis的连接实用程序,可以直接或通过Redis Sentinel轻松可靠地连接到Redis主机

  • resty-redis-cluster - 基于resty-redis-cluster的OpenResty Redis群集感知客户端

  • lua-resty-redis-cluster - OpenResty Redis集群客户端

  • lua-resty-redis-util - 基于lua-resty-redis并使Redis更容易操作

  • lua-cassandra - Pure Lua,功能丰富,支持群集的Cassandra客户端

  • lua-resty-cassandra - 使用CQL二进制协议的纯Lua Cassandra客户端

  • lua-resty-bloomd - 基于ngx_lua的客户端库,用于与bloomd服务器连接

  • lua-resty-riak -基于cosocket API的ngx_lua的Lua riak协议缓冲客户端驱动程序

  • lua-resty-moongoo - 用于OpenResty的MongoDB库,受Perl Mango的高度启发

  • lua-resty-mongol - Native Lua Mongodb驱动程序,它支持基于cosocket API的luasocket和ngx_lua

  • lua-resty-mongo - 基于cosocket API的ngx_lua的Lua mongodb客户端驱动程序

  • lua-mongo - 一个简单的Lua Mongo驱动程序(用于与co-socket工作的一个fork)

  • lua-resty-Influx - InfluxDB的OpenResty客户端

  • lua-telegraf - Telegraf / InfluxDB的Lua / OpenResty客户端

  • LUA-resty-kyototycoon通过@cloudflare -用于使用其天然丝协议KyotoTycoon的Lua客户端驱动程序(OpenResty / ngx_lua)

  • LUA-resty-kyototycoon通过@sjnam -使用其二进制协议用于KyotoTycoon的Lua客户端驱动程序

  • lua-resty-tarantool - 使用嵌入式Lua模块或OpeRresty与Nginx的Tarantool合作的库

  • lua-nginx-tarantool - Lua脚本中的NoSQL数据库驱动程序Tarantool基于快速nginx套接字构建

  • lua-resty-ssdb - 基于cosocket API的ngx_lua的Lua ssdb客户端驱动程序,SSDB是一个leveldb服务器

  • ledis-openresty - 基于cosocket API的ngx_lua的Lua LedisDB客户端驱动程序

  • lua-resty-fastdfs - 用于ngx_lua的非阻塞Lua FastDFS驱动程序库

  • lua-resty-statsd - OpenResty的StatsD客户端

  • lua-resty-dogstatsd - DogStatsD的客户端,是Datadog的StatsD度量服务器的扩展。使用nginx cosocket API

  • openresty-statsd - OpenResty的Lua模块,用于向StatsD发送指标

  • lua-resty-mogilefs - 基于cosocket API的ngx_lua的Lua mogilefs客户端驱动程序

测试和分析

  • Test :: Nginx - Nginx C模块和OpenResty Lua库开发的数据驱动测试支架(参见lua-resty-redis中的真实字测试)

  • nginx-systemtap-toolkit - 基于SystemTap的Nginx实时分析和诊断工具

  • stapxx - systemtap的简单宏语言扩展

  • FlameGraph - Flame图表是配置文件软件的可视化,可以快速准确地识别最频繁的代码路径

  • lua-resty-busted - 使用已破坏的测试OpenResty脚本

  • lua-resty-test - 基于OpenResty的测试框架

  • busted (Github)  - 优雅的Lua单元测试

  • Telescope (Github) - 望远镜是一个高度可定制的Lua测试库,允许使用嵌套上下文进行声明性测试

消息队列和任务管理

  • lua-resty-qless - Lua绑定到OpenResty的Qless(队列/管道管理)(另请参阅:使用OpenResty实现的Qless Web界面)

  • lua-resty-rabbitmqstomp - 使用cosocket api通过STOMP 1.2与RabbitMQ代理进行通信的Lua RabbitMQ客户端库,该代理具有STOMP插件

  • lua-resty-gearman - 基于cosocket API的ngx_lua的Lua gearman客户端驱动程序

  • lua-resty-kafka - 基于cosocket API的ngx_lua的Lua kafka客户端驱动程序

  • lua-resty-beanstalkd - 基于cosocket API的ngx_lua的Lua beanstalkd客户端驱动程序

  • lua-resty-ironmq - OpenResty的简单IronMQ客户端

条形码和QR码

  • lua-resty-QRcode - 用于ngx_lua的QR编码工具

  • lua-resty-QRDecode - ngx_lua的QR解码器

应用库

  • lua-resty-worker-manager - 跟踪工作进程和节点启动/重新启动/重新加载/停止

  • lua-resty-worker-events - Nginx工作进程的进程间事件

  • lua-resty-batch - 将nginx中的多个请求合并到一个子请求中

  • lua-resty-shell - 与OpenResty应用服务器一起使用的微小的非阻塞子进程/ shell库(使用sockproc)

  • lua-resty-exec - 非阻塞,非shell产生,流和非流子进程库(使用sockexec)

  • lua-resty-repl - 用于OpenResty和LuaJIT代码的交互式控制台(REPL)

  • lua-resty-fileinfo - LuaJIT FFI绑定到libmagic,魔术数字识别库 - 试图确定文件类型

  • lua-resty-base-encoding - 为OpenResty应用程序提供base32 / base16 / ...编码。

  • lua-resty-mime-sniff - 嗅探给定数据的真实MIME类型

  • lua-resty-taglib - 用于TagLib的LuaJIT FFI绑定 - 音频元数据库

  • lua-resty-uuid - libuuid的LuaJIT FFI绑定,一个兼容DCE的通用唯一标识符库

  • lua-resty-jit-uuid - 纯粹的LuaJIT(无依赖关系)uuid生成器针对性能进行了调整

  • lua-resty-unique-id - 用于为OpenResty生成唯一ID的Lua库

  • lua-resty-tsort - 对输入数据执行拓扑排序

  • lua-resty-postal - LuaJIT FFI绑定到libpostal - 一个快速的统计解析器/规范器,用于世界各地的街道地址。

  • lua-resty-libinjection - 用于libinjection的LuaJIT FFI绑定,一个SQL / SQLi标记器和分析器

  • lua-resty-socket - 自动LuaSocket / cosockets兼容模块

  • Inspect - Inspect是一个将任何Lua值转换为人类可读表示的库。它对于调试表中的错误特别有用。

  • lua- resty-maxminddb通过@ lilien1010 - LuaJIT FFI绑定官方libmaxminddb,以获取IP位置通过的MaxMind提供的IP数据库

  • lua- resty-maxminddb通过@ anjia0532 -一个Lua库读取的MaxMind的地理位置数据库格式(又名MMDB或geoip2)

日期和时间

这些库未建立使用lua-nginx-module的日期时间函数(除luatz)一样ngx.today,ngx.time,ngx.now,ngx.localtime,或ngx.utctime,但他们仍然可以来得心应手。在某些时候,我们可能需要一个更“官方”的OpenResty时间库。

  • luatz - 用于时间和日期操作的Lua库(有后备ngx.now)

  • LuaDate - Lua 5.x的Lua日期和时间模块

  • SciLua时间库 - 根据公历来操纵日期和期间的图书馆,即大多数用途的国际公认日历

压缩

  • lua-resty-zip - LuaJIT的 ZIP函数(压缩/解压缩)

  • lua-resty-snappy - 用于快速压缩器/解压缩器Snappy的LuaJIT FFI绑定

  • lua-resty-brotli - LuaJIT针对Google Brotli的FFI绑定

  • lua-resty-zstd - 使用FFI将LuaJIT绑定到Facebook Zstandard

文字格式

  • lua-resty-hoedown - LuaJIT FFI绑定到Hoedown,这是一个符合标准,快速,安全的Markdown Markdown处理库

  • lua-gumbo - 用于Gumbo HTML5解析库的Lua绑定,带有一组在纯Lua中实现的DOM API

  • lua-resty-sass - 用于libsass的LuaJIT FFI绑定 - 一个Sass编译器的AC / C ++实现(http://libsass.org/)

  • lua-resty-lanli - LuaJIT FFI绑定到Lanli HTML Sanitizer Library

  • lua-resty-ini - Lua INI文件解析器

  • lua-re2 - 用于RE2正则表达式库的C和Lua包装器。

  • lua-aho-corasick - C ++和Lua实现Aho-Corasick(AC)字符串匹配算法

  • lua-resty-json - Lua和C的JSON库(仅限解码器)。

  • lua-resty-libcjson - 用于OpenResty的基于FFI的LuaJIT cJSON库

  • lua-resty-prettycjson - Lua cJSON Pretty Formatter

  • lua-resty-jsonschema - https://github.com/tianchaijz/lua-resty-jsonschema

  • lua-laxjson - Lua绑定到一个轻松的流式JSON解析器,liblaxjson用于使用FFI的LuaJIT

  • lua-resty-utf8rewind - 用于utf8rewind的LuaJIT FFI绑定 - 用C编写的系统库,用于扩展默认字符串处理函数,支持UTF-8编码文本

  • lua-resty-unistring - 用于GNU libunistring的LuaJIT FFI绑定 - 一个Unicode字符串操作lIbrary(https://www.gnu.org/software/libunistring/)

  • lua-resty-htmlentities - 使用FFI绑定将实体反向移植到LuaJIT作为UTF-8解码器的实体

  • lua-resty-jsdecode - Javascript Escape Notation解码为UTF-8字节

二进制格式

  • lua-resty-msgpack - OpenResty的 Lua消息包

  • luajit-msgpack-pure - LuaJIT的 MessagePack(使用FFI,无绑定,V4 API)

文件格式

  • lua-resty-libxl - 用于OpenResty的LuaJIT基于FFI的LibXL(Excel)库

  • lua-resty-haru - 用于OpenResty的LuaJIT基于FFI的libHaru(PDF)库

  • lua-resty-hpdf - 用于OpenResty的基于FFI的LuaJIT libHaru(PDF)库

图像格式

  • lua-resty-imagick - 使用FFI将Lua绑定到ImageMagick的MagicWand for LuaJIT

  • Lua IMagick - Lua Pure-C绑定到ImageMagick

  • magick - Lua使用FFI绑定到ImageMagick for LuaJIT

  • giflib - 使用FFI将Lua绑定到LuaJIT的GIFLIB

  • fi-luajit - FreeImage的LuaJIT接口

  • lua-vips - 用于libvips的LuaJIT绑定

本地库

  • lua-resty-gettext - 用于OpenResty的基于FFI的LuaJIT gettext库

高速缓存

  • lua-resty-lrucache - 基于LuaJIT FFI的Lua-land LRU Cache

  • lua-resty-mlcache - 使用lua-resty-lrucache,共享字典和缓存标记保护的现代灵活多级缓存。

  • shcache - shcache尝试使用ngx.shared.DICT,缓存状态机位于顶部

  • lua-resty-tlc - 使用lua-resty-lrucache和共享字典的双层缓存实现。

  • Ledge - OpenResty的Lua应用程序,为Nginx提供HTTP缓存功能,使用Redis作为缓存/元数据存储

  • lua-resty-cache - HTTP缓存到Redis,可以提供过时响应,并且lua-resty-lock只允许一个请求填充新缓存

度量和统计

  • LUAMETER - 用于Nginx的Lua模块,可以在Nginx内部实时记录并提供关键状态和性能指标(专有)

  • ngxtop - nginx服务器的实时指标

记录

  • lua-resty-logger-socket - 基于原始套接字的Nginx记录器库(基于ngx_lua)

  • lua-nginx-logging - 用Lua编写的Nginx的日志实用程序

  • lua-resty-logger - OpenResty的自定义记录器库

  • lua-resty-rfc5424 - OpenResty中RFC5424(syslog)的实现

  • lua-resty-fluentd - Lua流利的基于cosocket API的ngx_lua记录器

  • lua-resty-fluent-logger - Fluentd的结构化记录器(OpenResty / ngx_lua)

  • raven-lua - Sentry的一个小型Lua接口,它还有一个有用的包装函数call(),它接受任意Lua函数(带参数)并执行它,捕获任何错误并自动报告给Sentry

编程

  • Lua Fun - Lua Fun是Lua的高性能函数编程库,设计时考虑了LuaJIT的跟踪编译器

  • Penlight - Penlight汇集了一组通用的纯Lua模块,专注于输入数据处理(如读取配置文件),函数编程(如map,reduce,占位符表达式等)和OS路径管理

  • Moses  - 用于功能编程的Lua实用带库。它补充了内置的Lua表库,使得对数组,列表和集合的操作更容易

  • Underscore.lua - Underscore.lua是一个Lua库,它提供了一组实用程序函数来处理迭代器,数组,表和函数

  • Lodash.lua - Lua关于Javascript库Lodash的函数式编程库

  • 在GitHub上搜索更多“Functional Lua”项目......

Web API

  • lua-resty-github - 在ngx_lua nginx模块中使用github api的Lua库

  • lua-resty-hipchat - 使用hipchat api的Lua库

  • lua-resty-newrelic - 基于C SDK的ngx_lua的Lua newrelic SDK

  • api-gateway-aws - 适用于AWS API的Lua模块。来自Nginx / OpenResty的缺少的AWS SDK。使用它以简单的方式代理AWS API,使用您喜欢的任何HTTP客户端。

  • lua-resty-aws - 适用于OpenResty + Lua的AWS签名V4库

  • lua-resty-aws-sdk - 根据API规范生成的原始AWS SDK

  • lua-resty-aws-email - 使用Amazon Simple Email Service(SES)API发送电子邮件

  • lua-resty-aws-auth - 简单的Lua resty实用程序,用于生成Amazon v4授权和签名标头

  • lua-resty-s3 - 用于将内容上传到Amazon S3的Lua驱动程序

  • lua-resty-s3uploader - AWS S3上传客户端,易于使用

  • lua-resty-paypal - Lua Paypal客户端使用快速结账OpenResty

  • lua-resty-17monip - 用于ngx_lua的17MonIP解析库

  • lua-resty-upyun - Upyun基于云的平台

  • lua-mailgun - 用于发送电子邮件和与Mailgun API交互的Lua库。通过Lapis HTTP API与OpenResty兼容,或通过LuaSocket与任何其他Lua脚本兼容。

  • lua-payments - 绑定到各种支付提供程序API以便在Lua中使用(使用OpenResty或支持LuaSocket的任何东西)

其他库

  • OpenResty Package Manager存储库

  • LuaRocks存储库(在LuaRocks中搜索resty库)

  • Github搜索lua-resty- *库,或最近更新的库

  • Lua工具箱

  • luapower - Lua,JIT,电池

  • 可用的LuaJIT包列表

  • 可用的LuaJIT FFI绑定列表

文章说明:

本文原创发布于探乎站长论坛,未经许可,禁止转载。

题图来自Unsplash,基于CC0协议

该文观点仅代表作者本人,探乎站长论坛平台仅提供信息存储空间服务。

评论列表 评论
OpenResty® 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。
社区管理员:

暂无管理员

发布评论

评论: 什么是OpenResty

粉丝

0

关注

0

收藏

0

已有0次打赏