安装软件
需要安装三个lua 库: xavante wsapi cgilua
luarocks install xavante
http://keplerproject.github.io/xavante/manual.html#install
luarocks install wsapi-xavante
http://keplerproject.github.io/wsapi/index.html
https://github.com/keplerproject/wsapi
cgilua
luarocks install cgilua
https://github.com/keplerproject/cgilua
运行脚本
切换到cgilua样例目录
root@fqs:/home/share/cgilua-master/cgilua-master/examples# lua xavante_cgilua.lua
[2016-06-22 22:16:50] Xavante started on port(s) 8080
脚本内容 laucher:
WSAPI Xavante 安装后自带launcher
http://keplerproject.github.io/wsapi/manual.html
launcher:
主要实现在 '/usr/local/lib/luarocks/rocks/wsapi/1.6.1-1/bin/wsapi'
此内容,与运行脚本章节的 launcher 功能角色上相同, 但是其比较完善。
运行流程分析
1、 xavante 负责服务器的启动, 并制定 cgilua 请求处理的handler注册
2、xavante.cgiluahandler.makeHandler (webDir) , handler的构造
其中,handler构造依赖了 xavante的wsapi, with的值可以是 function(req, res)
local xavante = require "wsapi.xavante" --- 专门针对 xavante写的wsapi的适配
wsapi.xavante中存在 构造 cgivars 表。
make_handler 入参 wsapi_loader需要 wsapi.sapi文件支持
此loader即加载 wsapi.sapi文件, 文件被rings包裹运行, 即 wsapi.sapi –> cgilua 都是在独立环境下运行
前面 “wsapi.xavante中存在 构造 cgivars 表” 也会传入 独立的运行环境。
wsapi.sapi 直接 调用 cgilua
WSAPI Xavante 安装后自带 wsapi.cgi 程序
实现文件:
此cgi程序用于运行 满足 wsapi接口的应用脚本, 例如: