OpenResty之ngx lua API介绍
博客专区 > wangjstu 的博客 > 博客详情
OpenResty之ngx lua API介绍
wangjstu 发表于2年前
OpenResty之ngx lua API介绍
  • 发表于 2年前
  • 阅读 176
  • 收藏 5
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

摘要: 跟着大神学习http://www.stuq.org/,自己做笔记!

1.ngx lua学习资源 ngx lua有40多个指令,120多个API,访问链接官网github地址

2.编辑nginx.conf

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        lua_code_cache off;
        location / {
            root   html;
            index  index.html index.htm;
        }
    location /hello {
            content_by_lua_file ngx_lua/hello.lua;
        }
    location /get_random_string {
            content_by_lua_file ngx_lua/get_random_string.lua;
        }
    location /decode_info {
            content_by_lua_file ngx_lua/decode_info.lua;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

3.编辑decode_info.lua文件(/usr/local/openresty/nginx/ngx_lua/decode_info.lua)

local json = require "cjson"

ngx.req.read_body()
local args = ngx.req.get_post_args()

if not args or not args.info then
    ngx.exit(ngx.HTTP_BAD_REQUEST)
end

local client_ip = ngx.var.remote_addr
local user_agent = ngx.req.get_headers()['user-agent'] or ''
local info = ngx.decode_base64(args.info)

local response = {}
response.info = info
response.ip = client_ip
response.user_agent = user_agent

ngx.say(json.encode(response))

4.开启nginx服务,进行测试

curl -i --data 'info=5aW95aW95a2m5Lmg77yM5aSp5aSp5ZCR5LiK' http://127.0.0.1/decode_info

输出:
HTTP/1.1 200 OK
Server: openresty/1.9.7.1
Date: Sun, 03 Jan 2016 14:39:18 GMT
Content-Type: application/octet-stream
Transfer-Encoding: chunked
Connection: keep-alive

{"user_agent":"curl\/7.19.7 (x86_64-redhat-linux-gnu) libcurl\/7.19.7 NSS\/3.19.1 Basic ECC zlib\/1.2.3 libidn\/1.18 libssh2\/1.4.2","info":"好好学习,天天向上","ip":"127.0.0.1"}

5.后话 可以根据API接口进行学习哦...

参考:

  1. https://github.com/openresty/lua-nginx-module#readme
  2. https://www.nginx.com/
标签: OpenResty 学习
共有 人打赏支持
wangjstu
粉丝 5
博文 10
码字总数 2053
×
wangjstu
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: