windows下openresty中使用lua做接口转发、二次封装等
需求:根据客户需求,可以在ngx下 通过lua做接口二次封装再次转发给用户或第三方
场景:对返回值有要求的、接口屏蔽字段、或做一些业务上的验证等
1、windows直接下载openresty 解压即可,就完成了windows下使用lua的开发环境
2、配置:
a、在nginx.conf里http下配置如下代码:
include mime.types;
default_type application/octet-stream;
lua_package_path "/lualib/?.lua;;"; #lua 模块
lua_package_cpath "/lualib/?.so;;"; #c模块
include lua.conf; #导入自定义lua配置文件
resolver 8.8.8.8;
b、在nginx.conf同目录创建lua.conf文件专门存放lua的路由配置
#lua.conf
server {
charset utf-8; #设置编码
listen 80;
server_name _;
location /user {
default_type 'text/html';
content_by_lua_file lua/api/userController.lua; #相对于nginx安装目录
}
}
c、在ngx根目录下的lua文件夹里创建“api”文件夹,并且在里面添加userController.lua 处理文件类,例如代码如下:
local request_method = ngx.var.request_method
local args = nil --1、获取参数的值 获取前端提交参数
if "GET" == request_method then
args = ngx.req.get_uri_args()
elseif "POST" == request_method then
ngx.req.read_body()
args = ngx.req.get_post_args()
end --2、组合url请求Get/Post请求 并获取参数
local http = require "resty.http"
local httpc = http.new()
local url = "http://xxxxx/user/login/"..args["userid"].."/"..args["pass"]
local resStr --响应结果
local res, err = httpc:request_uri(url, {
method = "GET",
--args = str,
body = "a=1&b=2",
headers = {
["Content-Type"] = "application/json",
}
}) --3、开始重新组合参数 例子 可根据返回的JSON自己处理
local cjson = require "cjson"
local sampleJson = [[{"age":"23","testArray":{"array":[8,9,11,14,25]},"Himi":"himigame.com"}]];
--解析json字符串
local data = cjson.decode(sampleJson);
--打印json字符串中的age字段
ngx.say(data["age"]);
--打印数组中的第一个值(lua默认是从0开始计数)
ngx.say(data["testArray"]["array"][1]); --4、打印输出新返回值
ngx.say(res.body)
3、启动ngx服务器,访问地址,路由为user
windows下openresty中使用lua做接口转发、二次封装等的更多相关文章
- windows下apache + mod_wsgi + python部署flask接口服务
windows下apache + mod_wsgi + python部署flask接口服务 用python3安装虚拟环境 为啥要装虚拟环境? 原因1:安装虚拟环境是为了使项目的环境和全局环境隔离开,在 ...
- windows下cmd中命令操作
windows下cmd中命令: cls清空 上下箭头进行命令历史命令切换 ------------------------------------------------------------- ...
- windows下VMware-workstation中安装CentOS
windows下VMware-workstation中安装CentOS,可以分两部分,安装虚拟机和安装CentOS虚拟机.具体步骤如下: 一.安装虚拟机 1.安装VMware-workstation, ...
- (转)windows下VMware-workstation中安装CentOS
windows下VMware-workstation中安装CentOS windows下VMware-workstation中安装CentOS,可以分两部分,安装虚拟机和安装CentOS虚拟机.具 ...
- Windows下Git中正确显示中文的设置方法
Windows下Git中正确显示中文的设置方法 具体设置方法如下: 进入目录etc:$ cd /etc 1. 编辑 gitconfig 文件:$ vi gitconfig.在其中增加如下内容: [gu ...
- openresty+lua做接口调用权限限制
说明:openresty可以理解为一个服务器它将nginx的核心包含了过来,并结合lua脚本语言实现一些对性能要求高的功能,该篇文章介绍了使用openresty 1.purview.lua --调用j ...
- windows下caffe安装配置、matlab接口
一.CommonSettings.props caffe下载后解压.源代码文件夹caffe-master,到该文件夹下的windows文件夹下,将CommonSettings.props.exampl ...
- Windows下Python中的中文路径和中文输出问题
这几天有个项目需要写一点类似于脚本的小程序,就用Python写了,涉及到中文路径和中文输出的问题,整理一下. 有一个问题我觉得需要先强调一下,在写Python程序的时候,一定保证编码是utf-8,然后 ...
- Windows 下 Docker 的简单学习使用过程之二 Docker For windows
1. Docker For windows 最新版也支持到了 docker ce 18.06 (这个博客的编写时间是 2018.8.17 当时是最新的) 2. 下载安装. 大概500m 左右的安装文件 ...
随机推荐
- csharp: ClientScript.RegisterStartupScript int net4.0
//彈出提示 ClientScriptManager cs = Page.ClientScript; StringBuilder sb = new StringBuilder(); sb.Append ...
- mysql 字符串转换呈毫秒值
SELECT CEIL((UNIX_TIMESTAMP('2011-05-31 23:59:59') - UNIX_TIMESTAMP('2011-05-31 00:59:59'))/1000/60/ ...
- html笔记【重新学习】
<a></a>超链接标签: a标签有个target属性,<a href="#" target = "_self">在当前选项 ...
- 移动Web布局
移动Web开发之移动页面布局 前言 本文针对手机设备设计的页面,并非兼容全设备的响应式布局,常见的MobileWeb页面如H5页面.手机页面.WAP页.webview页面等等.在不同尺寸的手机设备上, ...
- javascript对象(2)
这个对象,不是那个对象.续更第二篇.. 昨天说了对象的基本概念以及创建,今天来说一下它的其他方法: 1.访问属性的两种方式:点语法.[]语法 var dog =new Object(); dog.na ...
- Zepto结合Swiper的选项卡
我们昨天说了关于Angular的选项卡,那今天就说一下Swiper的选项卡吧! 今天的选项卡是Zepto结合Swiper的选项卡,咱么明天再说纯纯的Swiper的吧! 既然是关于Zepto和Swipe ...
- 尝试VS插件
从试用vs2013开始,ide变得越来越智能,但是vs2013总是会出一些莫名其妙的问题,导致编译不成功,不能跟vs2010共享等等.于是由再次回到vs2010. 现在vs2015的update1更新 ...
- 【Eclipse】在Eclipse上安装Spket
转自:https://www.cnblogs.com/HDK2016/p/7099383.html 1,Spket是什么? Spket是一种编辑javaScript和XML代码的工具,可以用他自己的 ...
- mac 上配置 maven
1. 将maven压缩包解压至/Users/suqiuhui/Applications目录下的新建文件夹dev下 2. 打开终端(系统根目录,~/下) 3. 如果没有 .bash_profile 文件 ...
- redis复制集(sentinel)
https://www.jianshu.com/p/45ffd2a84143 内核配置 cat >> /etc/rc.local << EOF echo never > ...