Openresty中http和C_json模块怎么用

什么是Openresty?

Openresty是一个基于 Nginx 的全套 Web 应用服务器,由中国开发者 Yichun Zhang 开源,其采用了 lua 语言编码。主要是让lua开发者可以使用 lua 编写 Nginx 模块,使得Nginx 的灵活高性能特性和lua 强大的编程能力相结合,从而实现高并发的网络应用,2011年Yichun Zhang 开发出了第一个OpenResty,旨在提供一个可扩展的 Web 平台。目前最新版号为1.21.3.2

Openresty http模块的使用

OpenResty为HTTP和WebSockets服务提供了一系列的API。利用这些API,可以方便快捷地完成HTTP服务器的开发,并且可以轻易地扩展。其中用到最多的就是http模块了。下面是一些Openresty http模块的实例:

  1. 在nginx.conf里面添加监听端口
  2. listen 8000;

  3. 使用location指令表明每个请求匹配的URI
  4. location /hello {
    default_type text/html;
    content_by_lua_block {
    ngx.say(“

    hello, world

    “)
    }
    }

  5. 在location阶段中修改请求的URI
  6. location /http.lua {
    default_type ‘text/plain’;
    content_by_lua_block {
    ngx.req.set_uri(“/world”, true);
    }
    }

C_json模块在Openresty中的用法

cjson是lua实现的一个JSON编解码的模块,他可以将JSON格式的字符信息转化成lua表,或者将lua表转换为JSON格式的字符信息,使用cjson模块,可以方便快捷地处理Json类型的数据。下面列出c_json 的一些常用方法:

  1. 编码函数:cjson.encode()
  2. 例如:res = cjson.encode({a=123,b=’hello world’,c={67,34,’abc’}})

  3. 解码函数:cjson.decode()
  4. 例如:res = cjson.decode(‘{“a”:123,”b”:”hello world”,”c”:[67,34,”abc”]}’)

  5. 编解码调用方法
  6. require(“cjson”)
    local data = {a=1, b=’hello world’, cï¼=3.14, d={123, false, true, nil, {a=1, b=’tt’,c=3.14}}, e=json.null}
    local json_str = cjson.encode(data)
    ngx.say(json_str)

    local tab = cjson.decode(json_str)
    ngx.say(tab.c)

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享