安装软件

需要安装三个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接口的应用脚本, 例如:

http://keplerproject.github.io/wsapi/manual.html

05-02 02:01