不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2019-04-11 00:02  分类:OpenResty_Lua 

unpack()函数

可以使用table.unpack()函数,将数组形式的table拆开。

这个函数有三个参数,第一个参数就是要拆的table,第二个参数是起始元素的下标,默认为1,第三个参数是结束元素的下标,默认为table的长度。

例如:

local tbl = { 2, 4, 6, 8 }
local a, b, c, d = unpack(tbl)
作者:php-note.com  发布于:2019-04-07 21:11  分类:OpenResty_Lua 

如果是一个 *.lua 的文件, 里面用到了自己写的库, 或者第三方写的库, 但是你不想把它放到 lua 的安装目录里, 则在代码里面可以指定require搜索的路径。

package.path = '/usr/local/share/lua/5.3/?.lua;/home/resty/?.lua;'    --搜索lua模块
package.cpath = '/usr/local/lib/lua/5.3/?.so;'                        --搜索so模块
作者:php-note.com  发布于:2019-04-05 16:31  分类:OpenResty_Lua 

应该这样用:

if next(a) == nil then
    print("a是个空表")
end

-- 或

if note next(a) then
    print("a是个空表")
end

next()其实就是pairs遍历table时用来取下一个内容的函数。

作者:php-note.com  发布于:2019-04-01 00:28  分类:OpenResty_Lua 

table 是 lua 中常用的数据结构,写一个函数专门来调试它,就变得很有必要了

作者:php-note.com  发布于:2019-03-31 22:37  分类:OpenResty_Lua 

LuaSocket 是 Lua 的网络模块库,它可以很方便地提供 TCP、UDP、DNS、FTP、HTTP、SMTP、MIME 等多种网络协议的访问操作。

作者:php-note.com  发布于:2019-03-31 16:17  分类:OpenResty_Lua 

OpenResty 最主要的应用场景之一是 API Server,有别于传统 Nginx 的代理转发应用场景,API Server 中心内部有各种复杂的交易流程和判断逻辑,学会高效的与其他 HTTP Server 调用是必备基础。

作者:php-note.com  发布于:2019-03-31 16:13  分类:OpenResty_Lua 

所谓 SQL 注入,就是通过把 SQL 命令插入到 Web 表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的 SQL 命令。

作者:php-note.com  发布于:2019-03-31 16:12  分类:OpenResty_Lua 

在 OpenResty 的体系中,可以通过共享内存的方式完成不同工作进程的数据共享,可以通过 Lua 模块方式完成单个进程内不同请求的数据共享。如何完成单个请求内不同阶段的数据共享呢?最典型的例子,估计就是在 log 阶段记录一些请求的特殊变量。

作者:php-note.com  发布于:2019-03-31 16:05  分类:OpenResty_Lua 

Nginx 子请求是一种非常强有力的方式,它可以发起非阻塞的内部请求访问目标 location。目标 location 可以是配置文件中其他文件目录,或 任何 其他 nginx C 模块,包括 ngx_proxy、ngx_fastcgi、ngx_memc、ngx_postgres、ngx_drizzle,甚至 ngx_lua 自身等等 。

作者:php-note.com  发布于:2019-03-31 15:52  分类:OpenResty_Lua 

Nginx作为一个成熟、久经考验的负载均衡软件,与其提供丰富、完整的内置变量是分不开的,它极大增加了对Nginx网络行为的控制细度。这些变量大部分都是在请求进入时解析的,并把他们缓存到请求cycle中,方便下一次获取使用。首先来看看Nginx对都开放了那些API。