OpenResty-2.一个独立的ngx_lua程序

提示,有关ngx_lua的语法可以到如下网站搜索

1
https://www.nginx.com/resources/wiki/modules/lua/?highlight=luas

1.一个完整的程序

1
2
3
4
5
6
7
local args = ngx.req.get_uri_args()
local salt = args.salt
if not salt then
ngx.exit(ngx.HTTP_BAD_REQUEST)
end
local str = ngx.md5(ngx.time() .. salt)
ngx.say(str)

好在之前写redis书时候熟悉了下lua语法。

1.获取uri全部请求参数。
2.获取salt参数。
3.不存在返回400(ngx.HTTP_BAD_REQUEST是常量)
4.把当期时间和salt连接,然后计算md5,然后ngx.say。

2.测试

(1) 没参数

1
2
3
4
5
6
7
8
[@bx-14-182 script]# curl 127.0.0.1/first
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>openresty/1.9.15.1</center>
</body>
</html>

(2) salt参数

1
2
3
4
[@bx-14-182 script]# curl 127.0.0.1/first?salt=helloResty
35b3d103c31169508b764ea0a2f7bf4f
[@bx-14-182 script]# curl 127.0.0.1/first?salt=helloResty
58d82acd07ad68117dfe9813ea342605

尽可能使用ngx_lua的api 异步非阻塞

少用lua的api