不灭的焱

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

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

在ngx_lua模块中使用共享内存字典项相关API的前提条件是已经使用lua_shared_dict命令定义了一个字典项对象,该命令的具体用法为:

语法:lua_shared_dict <name> <size>

该命令主要是定义一块名为name的共享内存空间,内存大小为size。通过该命令定义的共享内存对象对于Nginx中所有worker进程都是可见的,当Nginx通过reload命令重启时,共享内存字典项会从新获取它的内容,当时当Nginx退出时,字典项的值将会丢失。

作者:php-note.com  发布于:2019-04-27 21:36  分类:OpenResty_Lua 

client_max_body_size

client_max_body_size 默认 1M,表示 客户端请求服务器最大允许大小,在“Content-Length”请求头中指定。如果请求的正文数据大于client_max_body_size,HTTP协议会报错 413 Request Entity Too Large。就是说如果请求的正文大于client_max_body_size,一定是失败的。如果需要上传大文件,一定要修改该值。

作者:php-note.com  发布于:2019-04-27 17:10  分类:OpenResty_Lua 

map 指令是由 ngx_http_map_module 模块提供的,默认情况下安装 nginx 都会安装该模块。

map 的主要作用是创建自定义变量,通过使用 nginx 的内置变量,去匹配某些特定规则,如果匹配成功则设置某个值给自定义变量。 而这个自定义变量又可以作于他用。

作者: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 命令。