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. Dollar Dayz POJ - 3181

    解法 完全背包+大数...不想写大数了放个python得了 代码 dp=[0 for i in range(2000)] n,k=map(int,input().split()) num=[i for ...

  2. <MyBatis>入门四 传入的参数处理

    1.单个参数 传入单个参数时,mapper文件中 #{}里可以写任意值 /** * 传入单个参数 */ Employee getEmpById(Integer id); <!--单个参数 #{} ...

  3. linux命令 info

    info命令是Linux下info格式的帮助指令. 就内容来说,info页面比man page编写得要更好.更容易理解,也更友好,但man page使用起来确实要更容易得多.一个man page只有一 ...

  4. @requestbody---接受前端传json对象并绑定javabean

    @requestbody---接受前端传json对象并绑定javabean----https://blog.csdn.net/ljxbbss/article/details/74452326 最近代码 ...

  5. noip模拟赛 圆桌游戏

    [问题描述] 有一种圆桌游戏是这样进行的:n个人围着圆桌坐成一圈,按顺时针顺序依次标号为1号至n号.对1<i<n的i来说,i号的左边是i+1号,右边是i-1号.1号的右边是n号,n号的左边 ...

  6. 清北学堂模拟赛d1t1 位运算1(bit)

    题目描述LYK拥有一个十进制的数N.它赋予了N一个新的意义:将N每一位都拆开来后再加起来就是N所拥有的价值.例如数字123拥有6的价值,数字999拥有27的价值.假设数字N的价值是K,LYK想找到一个 ...

  7. poj 2823 二分法+单调队列

    #include<stdio.h> #include<string.h> #define N  1100000 int a[N]; int fmin[N],fmax[N]; i ...

  8. 洛谷 P1993 小K的农场

    P1993 小K的农场 题目描述 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共m个),以下列三种形式描述: 农场a比农场b ...

  9. 演练:使用VS2010 C# 创作简单的多线程组件

    BackgroundWorker 组件取代了 System.Threading 命名空间并添加了功能:但是,可以选择保留 System.Threading 命名空间以实现向后兼容并供将来使用.有关更多 ...

  10. 相当精简的CentOS个人桌面版--从CentOS6.3 32b-mini版開始(mini版过程略)

    利用网络实现相当精简的CentOS个人桌面版--从CentOS6.3 32位mini版開始(mini版过程略).升级后即是CENTOS6.5. 特别感谢163网易的镜像空间[http://mirror ...