文档章节

OpenResty之ngx lua API介绍

wangjstu
 wangjstu
发布于 2016/01/03 23:06
字数 255
阅读 246
收藏 5

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/

© 著作权归作者所有

共有 人打赏支持
wangjstu

wangjstu

粉丝 4
博文 10
码字总数 2053
作品 0
杭州
程序员
私信 提问
OpenResty 1.13.6.1,基于 Nginx 与 Lua 的 Web 平台

OpenResty 1.13.6.1 已发布,此版本基于最新的 Nginx 主线版 1.13.6,包含了新的 ngx_stream_lua_module 模块(默认启用),可以在 OpenResty 里面用 Lua 实现 TCP 服务器编程了,对 UDP 的支...

淡漠悠然
2017/11/17
2.3K
3
openresty+lua灰度发布的简单实验

如题,本文是笔者使用openresty 和lua脚本实现的简单灰度发布系统,记录下来。 一、安装 参考openresty 官方网站安装openresty即可 建议参考文章https://www.cnblogs.com/zdz8207/p/Nginx-L...

月黑风高杀人夜
2018/08/27
0
0
在 OSX 上用 openresty 架设自己的 Git Web Service

在 OSX 上用 openresty 架设自己的 Git Web Service 目录 - 介绍- 下载编译安装 openresty- 启动 openresty- 下载编译运行 sockproc 守护进程- 下载安装运行 codea-scm web 服务- 在 iPad 上...

FreeBlues
2015/06/22
0
0
openresty

在redhat上面按照文档编译安装openresty后 ,访问报错 *310 pcre_exec() failed: -14,正则匹配失败,测试环境 centos的系统同样的安装没有异常,对应的pcre都是有编译进去的,nginx -v如下:...

尴尬中出
2018/03/01
359
0
OpenResty(nginx扩展)实现防cc攻击

OpenResty(nginx扩展)实现防cc攻击 作者:朱 茂海 /分类:Nginx, 服务器安全 /Tag:OpenResty 文章目录 [隐藏] 一、安装依赖 二、luajit安装 三、openresty安装 四、nginx配置 防cc攻击,推荐使...

epiclight
2015/06/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

在 Linux 上使用 tarball

Tarball 提供了一种在 Linux 系统上备份和管理一组文件的通用方法。请按照以下提示了解如何创建它们,以及从中提取和删除单个文件。 “tarball” (LCTT 译注:国内也常称为“tar 包”)一词...

Linux就该这么学
13分钟前
0
0
2018年AI和ML(NLP、计算机视觉、强化学习)技术总结和2019年趋势(上)

摘要: 回顾2018,展望2019,计算机科学技术继续前进! 1、简介: 过去几年一直是人工智能爱好者和机器学习专业人士最幸福的时光。因为这些技术已经发展成为主流,并且正在影响着数百万人的生...

阿里云官方博客
17分钟前
0
0
UnsatisfiedLinkError sawindbg.dll

方法:搜索sawindbg.dll,然后将文件报错的目录下

洛水
19分钟前
0
0
说说不知道的Golang中参数传递

本文由云+社区发表 导言 几乎每一个C++开发人员,都被面试过有关于函数参数是值传递还是引用传递的问题,其实不止于C++,任何一个语言中,我们都需要关心函数在参数传递时的行为。在golang中...

腾讯云加社区
19分钟前
0
0
207. 多数据源 ssm项目

参考博客: https://blog.csdn.net/a15020059230/article/details/76677322 1.效果 一个项目同时连接多个数据源 2. 过程 2.1 搭建单数据源ssm项目 https://my.oschina.net/springMVCAndsprin...

Lucky_Me
20分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部