标签:LUA相关的结果46条:

    Linux下lua开发环境安装及安装luafilesystem

      Linux下lua开发环境安装及安装luafilesystem1.先安装lua的相关依赖安装C开发环境由于gcc包需要依赖binutils和cpp包,另外make包也是在编译中常用的,所以一共需要9个包来完成安装,因此我们只需要执行9条指令即可:gcc:命令未找到(解决方法)yuminstallcppyuminstallbinutilsyuminstallglibcyuminstallglibc-kernheadersyuminstallglibc-comm…

    发布于:2019-11-08 11:32:20

    Debian/Ubuntu 下 Nginx+Lua 环境搭建

      前言关于lua的特性不再赘述;以下步骤均使用了apt-get进行操作,免去了诸如ng-lua组件手动加载等繁琐的步骤,妄图使用其他方式安装的请移步官方文档:https://github.com/openresty/lua-nginx-module#installationlua在web上基于lua-nginx-module运作,目前还没有Apache的支持组件,所以妄图使用Apache的可以撤了;…

    发布于:2019-11-08 11:14:49

    Nginx lua 接收 GET/POST 请求

      有时候写一些简单的api接口如果不想再起个php-fpm,完全可以通过nginx加lua在nginx直接实现。当然前提是你必须给nginx安装lua-nginx-module模块。下面是nginx的配置及lua代码:lua_need_request_bodyon;location=/api{default_typetext/plain;content_by_lua_block{ngx.req.re…

    发布于:2019-11-07 15:20:29

    nginx+lua在帐号系统中的应用

      nginx+lua在帐号系统中的应用我们的帐号系统要应用到多个产品里,所以设计的系统需要满足高并发的特性。项目A更新密码,项目B就得下一次触发接口时,自动登出。我们帐号系统没有使用Oauth2.0,而是采用了简单的JWT(JsonWebToken)的方式来处理的用户认证。所以,帐号系统要提供一个验证用户密码修改的API。这里就不展开讲jwt了。不了解的可以去google。jwt一共三段:xxx.yyy.zzz,我们把重要的信息放在p…

    发布于:2019-11-07 14:47:21

    nginx+lua 实现请求流量上报kafka

      nginx+lua 实现请求流量上报kafka环境依赖前面26、27、28讲到的博文环境即可,上报kafka,只需在应用层nginx上操作(192.168.0.16,192.168.0.17)请求上报kafka其实很简单,大致思路是:下载lua-resty-kafka,提供lua操作kafka的方法类库lua获取nginx请求参数,组装上报对象上报对象encodecjson编码luakakfa上报即可代码实现引入lua-resty-kafka…

    发布于:2019-11-07 14:23:45

    OpenResty下安装luarocks

      在做一些openresty的项目的时候,经常会借助一些第三方包来协助开发,为了方便管理,我们可以使用openresy官方的opm,或者lua的包管理工具luarocks,只不过opm的包数量还不是太多,用的较多的还是luarocks,现在只能期待opm社区不断的发展壮大了。在做一些openresty的项目的时候,经常会借助一些第三方包来协助开发,为了方便管理,我们可以使用openresy官方的op…

    发布于:2019-11-07 13:33:29

    nginx+nginx_lua实现WAF防护功能

      nginx+nginx_lua实现WAF防护功能nginx_luanginx_lua模块是nginx的第三方模块,它可以将lua语言嵌入到nginx配置中,从而极大的扩展了nginx的能力,nginx以高并发而知名,而lua作为嵌入式语言轻便,两者的结合可以做到在nginx层就实现编程,而这里我们加入waf的lua过滤编程来实现waf。安装需要的程序包:nginxnginx_devel_kit(拓展nginx服务器核心功能的模块)lua-ngi…

    发布于:2019-11-05 16:05:01

    Nginx 安装 Lua 支持

      Nginx支持Lua需要安装lua-nginx-module模块,一般常用有2种方法:编译Nginx的时候带上lua-nginx-module模块一起编译使用OpenResty:Nginx+一些模块,默认启用了Lua支持OpenRestyisjustanenhancedversionofNginxbymeansofaddonmodulesanyway.Youcantakeadvantageofal…

    发布于:2019-11-05 15:25:15

    openresty通过lua增加随机traceid

      在没有引入zipkin(或者阿里的鹰眼,百度的华佗)这种trace系统的时候,排查问题的一般思路都是按照请求链路来寻找问题源。因此如果能在请求链路中有一个唯一的标识就最好了,而在nginx/openresty做接入层的架构中,可以通过lua脚本生成一个随机traceid。随机数的生成原理,都是先初始化一个随机数种子,由于伪随机数的特性,种子的随机性就显得格外重要,而一般种子的生成都是通过时间的倒序…

    发布于:2019-11-05 06:26:53

    golang基于redis lua封装的优先级去重队列

      前言:前两天由于某几个厂商的api出问题,导致后台任务大量堆积,又因为我这边任务流系统会重试超时任务,所以导致队列中有大量的重复任务。这时候我们要临时解决两个事情,一件事情,让一些高质量的任务优先执行;另一件事情,要有去重。rabbitmq不能很好的针对这类情况去重、分优先级。这时候我又想到了我最爱的redis…去重?list+set就可以解决,优先级,zset+zrange+zrem也可以解决……

    发布于:2019-11-04 20:55:42

    Lua之异常捕获

      如果需要在Lua中处理错误,必须使用函数pcall(protectedcall)来包装需要执行的代码。pcall接收一个函数和要传递给后者的参数,并执行,执行结果:有错误、无错误;返回值true或者或false,errorinfo。pcall本质上是使用“保护模式”来运行第一参数,因此可以捕获运行过程中的错误。给一个Cjson的例子:localjson=require("cjson")locals…

    发布于:2019-11-03 20:46:05

    Openresty最佳案例 | 第2篇:Lua入门

      Openresty最佳案例 | 第2篇:Lua入门什么是luaLua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua是巴西里约热内卢天主教大学(PontificalCatholicUniversityofRiodeJaneiro)里的一个研究小组,由RobertoIerusalimschy、WaldemarCeles和LuizHenriquedeFigue…

    发布于:2019-11-02 23:54:39

    Linux下安装配置OpenResty,并测试在Nginx中使用Lua编程

      一、简介OpenResty,也被称为“ngx_openresty”,是一个以Nginx为核心同时包含很多第三方模块的Web应用服务器。借助于Nginx的事件驱动模型和非阻塞IO,可以实现高性能的Web应用程序。OpenResty不是Nginx的分支,它只是一个软件包。主要有章亦春维护。OpenResty默认集成了Lua开发环境,而且提供了大量组件如Mysql、Redis、Memcached等,使得…

    发布于:2019-11-02 19:48:41

    linux 下安装 lua 及 lua-cjson

      安装luayum-yinstalllibtermcap-develncurses-devellibevent-develreadline-develwget-chttps://www.lua.org/ftp/lua-5.1.4.tar.gztarxvzflua-5.1.4.tar.gzcdlua-5.1.4makelinuxinstall安装lua-cjsonwget-chttps://www.k…

    发布于:2019-11-02 02:27:29

    利用redis + lua解决抢红包高并发的问题

      抢红包的需求分析抢红包的场景有点像秒杀,但是要比秒杀简单点。因为秒杀通常要和库存相关。而抢红包则可以允许有些红包没有被抢到,因为发红包的人不会有损失,没抢完的钱再退回给发红包的人即可。另外像小米这样的抢购也要比淘宝的要简单,也是因为像小米这样是一个公司的,如果有少量没有抢到,则下次再抢,人工修复下数据是很简单的事。而像淘宝这么多商品,要是每一个都存在着修复数据的风险,那如果出故障了则很麻烦。淘宝的…

    发布于:2019-10-30 21:38:48

    lua 模块管理的一点改进

      lua从5.2开始,简化了5.1中的模块管理方式,然后一直保持到现在这个样子。模块用require加载,同名模块在一个vm中只加载一次,第2次开始会返回上次加载的结果。加载模块时会利用package.path或package.cpath中定义的字符串模板,把模块名转换为文件名,依次尝试打开文件。我在新项目中,由于整合了不少模块,感觉现有的这套机制有点点不够用。所以我做了一点点小改动,支持了类似py…

    发布于:2019-10-28 02:17:47