OpenResty Lua API — 常用组件
摘自:http://www.daileinote.com/computer/openresty/09 下面列出 lua-nginx-module 模块内置的一些组件。 ngx.escape_uri1syntax: newstr = ngx.escape_uri(str) 转义uri。 ngx.unescape_uri1syntax: newstr = ngx.unescape_uri(str) 取消转义。 12345678910location = /test { content_by_lua_block { ngx.say(ngx.escape_uri("http://www.freecls.com?name=freecls&age=28")) ngx.say(ngx.unescape_uri("http%3A%2F%2Fwww.freecls.com%3Fname%3Dfreecls%26age%3D28")) } }[...
OpenResty Lua API — 请求相关
摘自:http://www.daileinote.com/computer/openresty/08 ngx.req.is_internal1syntax: is_internal = ngx.req.is_internal() 判断是否为内部请求。 ngx.get_phase1syntax: str = ngx.get_phase() 获取当前阶段名 1234567891011121314init #init_by_lua*.init_worker #init_worker_by_lua*.ssl_cert #ssl_certificate_by_lua*.ssl_session_fetch #ssl_session_fetch_by_lua*.ssl_session_store #ssl_session_store_by_lua*.set #set_by_lua*.rewrite #rewrite_by_lua*.balancer #balance...
OpenResty 配置指令
摘自:http://www.daileinote.com/computer/openresty/05 下面是 lua-nginx-module 模块的一些配置指令 lua_package_path123syntax: lua_package_path <lua-style-path-str>default: context: http 设置 lua 模块的搜索路径,可以包含 $prefix 或 ${prefix} 变量,当我们有多个 openresty 程序通过 -p 命令指定工作目录启动时非常有用。 lua_package_cpath123syntax: lua_package_cpath <lua-style-path-str>default: context: http 指定c动态库搜索路径,其他的同上。 12lua_package_cpath '/usr/lib64/lua/5.1/?.so;;/tmp/lua/*.so;;';lua_package_path '$prefix/lib/*.lua;;/tmp/lu...
Lua 语法入门
Lua语法入门Nginx编程需要用到Lua语言,因此我们必须先入门Lua的基本语法。 初识LuaLua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。官网:https://www.lua.org/ Lua经常嵌入到C语言开发的程序中,例如游戏开发、游戏插件等。 Nginx本身也是C语言开发,因此也允许基于Lua做拓展。 HelloWorldCentOS7默认已经安装了Lua语言环境,所以可以直接运行Lua代码。 1)在Linux虚拟机的任意目录下,新建一个hello.lua文件 2)添加下面的内容 1print("Hello World!") 3)运行 变量和循环学习任何语言必然离不开变量,而变量的声明必须先知道数据的类型。 Lua的数据类型Lua中支持的常见数据类型包括: 另外,Lua提供了type()函数来判断一个变量的数据类型: 声明变量Lua声明变量的时候无需指定数据类型,而是用local来声明变量为局部变量: 1234567...
