为什么80%的码农都做不了架构师?>>>   

注:最新版本在以下博客发布:

http://blog.csdn.net/ngwsx/

ngx_lua_module是一个nginx http模块,它把lua解析器内嵌到nginx,用来解析并执行lua语言编写的网页后台脚本。

特性:

*) HTML网页中内嵌LUA脚本代码,类似于PHP。

*) 支持非阻塞的数据库操作,目前只支持MYSQL。

更新说明:

*) 新增多个LUA表和接口,包括“nginx.log”、“nginx.req”和“nginx.resp”表。

TODO:

*) API说明文档。

*) 更新实用功能的LUA表和接口实现。

最新版本:

windows:https://github.com/downloads/hehaiqiang/ngwsx/ngx_lua_module-windows-1.0.5.0.rar

linux:https://github.com/downloads/hehaiqiang/ngwsx/ngx_lua_module-linux-1.0.5.0.zip


历史版本:

https://github.com/hehaiqiang/ngwsx/downloads

代码示例:

index.lsp

<%-- This is a lua server pagelocal print = print
local nginx = nginx
local dbd = nginx.dbd
local log = nginx.log
local req = nginx.req
local resp = nginx.resplocal url = "http://www.126.com/"
local title = "126.com"
%>
<html>
<head>
</head>
<body>
<a href="<%=url%>" target="_blank"><%=title%></a>
<hr>
<table border="1">
<%
local conn = dbd.create("libdrizzle")
if conn thenif conn:connect("127.0.0.1", 3306, "root", "123456", "mysql") == nginx.OK thenif conn:query("show databases") == nginx.OK then
%>
<tr><% while conn:column_read() == nginx.OK do %>
<td><%=conn:column_name()%></td><% end %>
</tr><% while conn:row_read() == nginx.OK do %>
<tr>
<%repeatlocal value = conn:field_read()if value == nginx.ERROR or value == nginx.DONE then break end
%>
<td><%=value%></td><% until false %>
</tr>
<%endendendconn:close()conn:destroy()
end
%>
</table>
<hr>
<%
-- test the table "log"
--log.error(log.ALERT, "test alert" .. 1 .. 10)
--log.debug(log.DEBUG_HTTP, "test debug http")
--log.error(log.ERR, "test error")
--log.error(log.EMERG, 1000)-- test the table "req"
print("uri: " .. req.uri .. "<br/>")
print("args: " .. req.args .. "<br/>")
print("host: " .. req.host .. "<br/>")
print("exten: " .. req.exten .. "<br/>")
print("method: " .. req.method .. "<br/>")
if req.referer then print("referer: " .. req.referer .. "<br/>") end
print("user_agent: " .. req.user_agent .. "<br/>")
print("method_name: " .. req.method_name .. "<br/>")
print("request_time: " .. req.request_time .. "ms" .. "<br/>")
print("request_line: " .. req.request_line .. "<br/>")
print("unparsed_uri: " .. req.unparsed_uri .. "<br/>")
print("http_protocol: " .. req.http_protocol .. "<br/>")
local id = req.get["id"] if id then print("id: " .. id .. "<br/>") end
local id = req.get.id if id then print("id: " .. id .. "<br/>") end
local start = req.get["start"] if start then print("start: " .. start .. "<br/>") end
local start = req.get.start if start then print("start: " .. start .. "<br/>") end-- test the table "resp"
--resp.content_type = "text/html"
--resp.content_type = "text/plain"
resp.write("<hr><hr><hr><hr><hr>")
%>
</body>
</html>

转载于:https://my.oschina.net/ngwsx/blog/29070

ngx_lua_module-1.0.5.0 (LUA编写网页脚本,支持windows和linux)相关推荐

  1. X86/ARM USB2.0/USB3.0转网口,支持Windows、Linux、Android、wince

    USB to LAN方案 1.方案介绍 2.准备测试资料 3.linux系统下测试 4.android系统下测试 USB转LAN方案IC有: USB 3.0千兆以太网  ( AX88179)      ...

  2. Android studio 3.0 (CMake)编写cydia脚本hook native

    在anndroid studio 2.2 后,用它编写native代码只支持用CMake进行,然后我正在准备用Cydia Substrate 来 hook native代码的时候,发现网上没有用CMa ...

  3. .NET 5.0预览版6发布:支持Windows ARM64设备

    2020年6月25日,微软dotnet团队在博客宣布了第六个 .NET 5.0 的预览版:https://devblogs.microsoft.com/dotnet/announcing-net-5- ...

  4. linux系统如何开启网页是否压缩,Windows或Linux下Apache开启GZIP压缩 | kTWO-个人博客...

    在搭建web服务器的时候有时因为服务器带宽比较小,而网站内容较多,内容加载较慢,此时建议站长们开启Apache的GZIP压缩功能,注意:开启GZIP之后会增加服务器的压力,不过一般服务器还是可以承受的 ...

  5. windows编写linux脚本,适用于 Windows 和 Linux 的脚本编写工具包

    提供脚本编写功能,支持部署高容量 ProLiant 服务器安装 在 Windows 及 Linux 环境中均支持 HPE ProLiant BL/ML/DL/SL.XL 100.300.500.700 ...

  6. C/C++ 如何调用Lua脚本,Windows以及Linux版本演示

    分为linux下和windows平台下: 前置工作,准备好lua安装包. 方法一(linux): 依次使用以下命令 得到安装包: wget http://www.lua.org/ftp/lua-5.2 ...

  7. Windows下编写的脚本文件无法在Linux上运行的问题

    可以看到报错了,无法运行,不存在目录,但是这个目录多出来一个\r 这是因为换行符造成的 只需要使用编辑器修改这里,不再使用CRLF,而是使用LF,就可以解决这个问题

  8. React Native 0.59.0 发布,使用 React 编写原生应用

    React Native 0.59.0 发布了.React Native 使开发者只使用 JavaScript 也能编写原生移动应用. 新版更新亮点: React Hooks React Native ...

  9. Java黑皮书课后题第6章:*6.17(显示0和1构成的矩阵)编写一个方法,使用下面的方法头显示m*n矩阵。每个元素都是随机产生的0或1。编写一个测试程序,提示用户输入n,显示一个n*n矩阵

    6.17(显示0和1构成的矩阵)编写一个方法,使用下面的方法头显示m*n矩阵.每个元素都是随机产生的0或1.编写一个测试程序,提示用户输入n,显示一个n*n矩阵 题目 题目描述与运行示例 破题 代码 ...

最新文章

  1. 蓝牙耳机测试软件apk_黑鲨蓝牙游戏耳机2解决延迟问题:比AirPods Pro更强
  2. 各种陷进,盘点那些坑你没商量的JDK方法
  3. 异星工场服务器直连,Factorio 异星工厂 搭建服务器
  4. 使用 Java 进行 HL7 编程
  5. 查看linux网络tcp,linux-查看网络原始数据工具tcpdump
  6. 获取frame 标签里#documents里面的内容
  7. VS2017离线安装失败解决无法重新安装问题 catalog问题
  8. 花游双人、三级跳斩获金银
  9. Python——format
  10. ADI电路设计电子书课件分享
  11. clickhouse修改数据存储目录
  12. html中文本属性的设置,css 文本属性direction的功能详解说明
  13. 2022高处安装、维护、拆除考试模拟100题及答案
  14. Fri Sep 11 22:24:03 CST 2020 WARN: Establishing SSL connection without server‘s identity verificatio
  15. vue2 Object.definProperty响应式原理(面试题)
  16. 硅谷首富:拉里 埃里森 1
  17. 怎样用云服务器搭建一款可以多人联网的传奇手游
  18. Matlab GUI/APP 浅谈(附计算器源码)
  19. ubuntu18.04装机
  20. ObjectAnimation

热门文章

  1. mysql下载为csv_MySQL 查询结果保存为CSV文件
  2. 第十五届全国大学生智能车竞赛线下比赛成绩和奖项
  3. HX711电子秤专用转换芯片读取MCU模块
  4. Spock测试框架中的注解使用
  5. python简单计算器异常处理_Python实现的简单计算器
  6. python卸载opencv_怎么为python安装新版的opencv模块-百度经验
  7. python第一个公开发行版_Python基础篇【第一篇】:python入门
  8. eclipse中tomcat启动不了_Spring Boot中Tomcat是怎么启动的
  9. (52 90) 简答 什么叫计算机网络,计算机网络期末复习试卷.doc
  10. 创建个人网站所需php书籍,PHP个人网站架设连环讲(三)