OpenResty / Nginx模块,Lua库和相关资源的列表

什么是OpenResty

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包中。

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

核心Nginx模块

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

第三方Nginx模块

  • ngx_lua_ipc - Lua Nginx模块和OpenResty的进程间通信 - 在Nginx工作进程之间发送带有字符串数据的命名警报
  • nchanGithub) - 用于HTTP,长轮询,Websockets和EventSource(SSE)的快速,水平可伸缩,多进程发布/ 订阅队列服务器和代理
  • ngx_pagespeedGithub) - 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包中,您无需单独安装它们。

网络框架

  • Lapis - Lapis是一个使用MoonScript或Lua构建Web应用程序的框架,它在Nginx的定制版本中运行,称为OpenResty
  • lorGithub) - 基于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-route - OpenResty的 URL路由库,支持多个路由匹配器,中间件,HTTP和WebSockets处理程序,提及它的一些功能
  • router.lua - Lua的准系统路由器,它匹配URL并执行Lua功能
  • lua-resty-r3 - libr3 OpenResty实现,libr3是一个高性能的路径调度库。它将您的路径路径编译为前缀树(trie)。通过在启动时使用构造的前缀trie,您可以有效地调度路径

请求分段解析器

中间件和API工具

模板

验证

  • 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 - 希望我们可以删除此未来的评论)

加密

联网

数据库和存储

测试和分析

消息队列和任务管理

条形码和QR码

应用库

日期和时间

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

  • luatz - 用于时间和日期操作的Lua库(有后备ngx.now
  • LuaDate - Lua 5.x的Lua日期和时间模块
  • SciLua时间库 - 根据公历来操纵日期和期间的图书馆,即大多数用途的国际公认日历

压缩

文字格式

二进制格式

文件格式

图像格式

  • 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-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 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的任何东西)

其他库

转自:https://github.com/bungle/awesome-resty

OpenResty / Nginx模块,Lua库和相关资源的列表的更多相关文章

  1. openresty(nginx)、lua、drizzle调研

    一.概述: 1.研究目标:nginx中使用lua脚本,及nginx直接访问mysql,redis 2.需要安装的内容: openresty,mysql,redis 3.OpenResty (也称为 n ...

  2. Github项目推荐-图神经网络(GNN)相关资源大列表

    文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 转自 | AI研习社 作者|Zonghan Wu 这是一个与图神经网络相关的资源集合.相关资源浏览下方 ...

  3. CentOS安装OpenResty(Nginx+Lua)开发环境

    一.简介 OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极高 ...

  4. OpenResty(nginx扩展)实现防cc攻击

    OpenResty(nginx扩展)实现防cc攻击 导读 OpenResty 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强 ...

  5. 【官方文档】Nginx模块Nginx-Rtmp-Module学习笔记(二)HLS 指令详解

    源码地址:https://github.com/Tinywan/PHP_Experience 一.在Nginx配置文件的RTMP模块中配置hls hls_key_path /tmp/hlskeys; ...

  6. 【重要】Nginx模块Lua-Nginx-Module学习笔记(三)Nginx + Lua + Redis 已安装成功(非openresty 方式安装)

    源码地址:https://github.com/Tinywan/Lua-Nginx-Redis 一. 目标 使用Redis做分布式缓存:使用lua API来访问redis缓存:使用nginx向客户端提 ...

  7. nginx 安装第三方模块(lua)并热升级

    需求: nginx上将特定请求拒绝,并返回特定值. 解决办法: 使用lua脚本,实现效果. 操作步骤: 安装Luajit环境 重新编译nginx(目标机器上nginx -V 配置一致,并新增两个模块n ...

  8. 【精选】Nginx模块Lua-Nginx-Module学习笔记(一)Nginx Lua API 接口详解

    源码地址:https://github.com/Tinywan/Lua-Nginx-Redis 一.介绍 各种* _by_lua,* _by_lua_block和* _by_lua_file配置指令用 ...

  9. 【精选】Nginx模块Lua-Nginx-Module学习笔记(二)Lua指令详解(Directives)

    源码地址:https://github.com/Tinywan/Lua-Nginx-Redis Nginx与Lua编写脚本的基本构建块是指令. 指令用于指定何时运行用户Lua代码以及如何使用结果. 下 ...

随机推荐

  1. Address already in use: JVM_Bind:8080错误的解决办法

    解决办法:先到命令行查找8080端口号被那个占用,输入后面的命令:netstat -ano 查到 然后到任务管理器把PID为20904的进程给结束掉,就OK了 -------------------- ...

  2. Spring Boot之简单的MVC

    最近开始看Spring Boot,发现其开发起来真是方便.今天就来实现一个简单的Spring MVC 请求,纯Java代码的哦. 1.Maven必不可少,先看看都加载了那些依赖: <?xml v ...

  3. Python面向对象,析构继承多态

    析构: def __del__(self): print("del..run...") r1 = Role("xx") del r1 结果打印del..run. ...

  4. response对象设置输出缓冲大小

    response对象设置输出缓冲大小 制作人:全心全意 通常情况下,服务器要输出到客户端的内容不会直接写到客户端,而是先写到一个输出缓冲区,在计算机术语中,缓冲区被定义为暂时放置输入或输出资料的内存. ...

  5. PAT 1122 Hamiltonian Cycle

    The "Hamilton cycle problem" is to find a simple cycle that contains every vertex in a gra ...

  6. Python基础(三) 数据类型

    我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点型以及布尔类型.这些基本数据类型组成了基本控制块,从而创建的Python应用程序. 一.基本结构 1.数值: Python支持不同的 ...

  7. image url to base64

    image url to base64 https://www.base64-image.de/ https://www.browserling.com/tools/image-to-base64 h ...

  8. HDU 1059 多重背包问题

    问题大意: 有价值1-6的六种物品,分别规定其数目,问是否存在一种方法能使这些物品不拆分就能平均分给两个人 #include <cstdio> #include <cstring&g ...

  9. [luoguP2854] [USACO06DEC]牛的过山车Cow Roller Coaster(DP + sort)

    传送门 先按照起点 sort 一遍. 这样每一个点的只由前面的点决定. f[i][j] 表示终点为 i,花费 j 的最优解 状态转移就是一个01背包. ——代码 #include <cstdio ...

  10. poj 2420 模拟退火法基础

    /* 题意:给n个电脑,求一个点到这n个电脑的距离和最小. 模拟退火法:和poj1379的方法类似 因为坐标范围是0-10000 不妨把它看成是10000*10000的正方形来做 */ #includ ...