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接口进行学习哦...
参考: