`
hqhe1982
  • 浏览: 11257 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

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

阅读更多

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

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 page

local print = print
local nginx = nginx
local dbd = nginx.dbd
local log = nginx.log
local req = nginx.req
local resp = nginx.resp

local 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 then
  if conn:connect("127.0.0.1", 3306, "root", "123456", "mysql") == nginx.OK then
    if 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>
<%
        repeat
          local value = conn:field_read()
          if value == nginx.ERROR or value == nginx.DONE then break end
%>
<td><%=value%></td>
     <% until false %>
</tr>
<%
      end
    end
  end
  conn: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>

 

0
4
分享到:
评论

相关推荐

    ngx_lua_module-windows-1.1.2.0

    ngx_lua_module是一款强大的扩展模块,专为Nginx服务器设计,允许在Nginx配置文件中直接嵌入Lua脚本,极大地增强了Nginx的功能和灵活性。这个"ngx_lua_module-windows-1.1.2.0"是该模块的一个Windows版本,适应于...

    ngx_devel_kit-0.2.19.tar.gz

    4. 使用Nginx的configure脚本,通过指定--add-module选项添加NDK模块,例如:`./configure --add-module=路径/ngx_devel_kit-0.2.19`。 5. 编译并安装Nginx:`make && make install`。 6. 更新Nginx配置文件,启用...

    ngx_http_proxy_connect_module-master (2).zip

    用于nginx的http正向代理https使用的模块

    lua-upstream-nginx-module, Nginx C 模块将Lua向ngx_lua公开,用于 Nginx upstreams.zip

    lua-upstream-nginx-module, Nginx C 模块将Lua向ngx_lua公开,用于 Nginx upstreams 电子邮件名称ngx_http_lua_upstream - Nginx MODULE,用于向 Nginx upstreams公开Lua到 ngx_lua目录NAME状态概要说明函数get_...

    lua-nginx-module-0.10.13

    Lua-Nginx-Module,简称lua-nginx-module,是Nginx服务器的一个重要扩展模块,它将强大的Lua脚本语言集成到Nginx中,允许用户在Nginx配置文件中直接编写Lua代码,极大地增强了Nginx的功能性和灵活性。版本0.10.13是...

    ngx_lua_waf-master.zip_lua_nearly11h_nginx_ngx_lua_waf

    ngx_lua_waf是一个基于Nginx的Web应用防火墙,其核心是利用了Nginx的ngx_lua模块,通过Lua脚本实现灵活且强大的安全防护功能。ngx_lua_waf项目名称中的“master”通常指的是该项目的主分支或最新版本。"nearly11h...

    nginx-1.0.12_ngx-cache-purge1.5.tar.gz

    在安装和使用 "nginx-1.0.12_ngx-cache-purge1.5.tar.gz" 包之前,你需要确保系统已经安装了支持编译和安装 Nginx 及其扩展的必要工具,例如 gcc 编译器、pcre 库、zlib 库和 openssl 库。接下来,你需要解压下载的...

    ngx_http_consistent_hash-master.zip

    Nginx 支持模块化设计,允许开发者通过编写模块来扩展其功能。ngx_http_consistent_hash 模块是这样的一个例子,它将一致性哈希的功能集成到 Nginx 中。 4. **配置和使用:** 在 Nginx 配置文件中,用户需要引入...

    ngx_http_proxy_connect_module.zip

    ngx_http_proxy_connect_module是一个针对Nginx服务器的第三方模块,主要功能是支持HTTP代理的"CONNECT"方法。在默认情况下,Nginx仅处理HTTP和HTTPS请求,但不支持通过HTTP代理进行TCP连接,比如SSL/TLS隧道。这个...

    lua-nginx-module-0.10.9rc7

    Lua-Nginx-Module是Nginx服务器中一个强大的扩展模块,允许我们在Nginx配置文件中直接嵌入Lua脚本,极大地提高了Nginx处理动态请求的能力。本文将详细探讨该模块的版本0.10.9rc7及其在实际使用中的关键知识点。 ...

    nginx-1.18.0-2.el7.ngx.x86-64.rpm安装包(含有部署手册)

    nginx-1.18.0-2.el7.ngx.x86_64.rpm安装包(含有部署手册) nginx-1.18.0-2.el7.ngx.x86_64.rpm安装包(含有部署手册) nginx-1.18.0-2.el7.ngx.x86_64.rpm安装包(含有部署手册) nginx-1.18.0-2.el7.ngx.x86_64.rpm...

    nginx-sticky-module-1.25.zip

    nginx sticky是nginx的module,可以实现基于cookie的负载均衡。 下载后,在编译安装nginx时,用--add-module选项,指到sticky所在目录。类似命令如下: ./configure --prefix=/usr/local/nginx-1.6.0 --add-module=...

    ngx_devel_kit-0.3.0

    ngx_devel_kit(通常缩写为 NDK)是一个针对Nginx的模块开发工具集,它为构建自定义Nginx模块提供了便利。在Nginx生态系统中,NDK是一个重要的扩展工具,允许开发者利用C语言直接操作Nginx的内部结构,以实现更高级...

    ngx_cache_purge_2.4.2.tar.gz

    allow 192.168.1.0/24; # 只允许特定IP进行缓存清除 deny all; purge_method PURGE; } } } ``` 6. 重新加载或重启Nginx以使配置生效。 通过这个模块,开发者和运维人员可以更有效地管理Nginx的HTTP缓存,...

    lua-nginx-module-master.zip

    Lua-nginx-module是Nginx服务器的一个扩展模块,它允许我们在Nginx配置文件中直接嵌入 Lua 脚本,极大地增强了Nginx的功能性和灵活性。这个"lua-nginx-module-master.zip"压缩包包含了该模块的源代码,是安装和...

    Nginx-ngx_lua模块原理和内置函数.docx

    - 分别指定 Lua 外部库的路径(`.lua` 文件)和 C 编写的 Lua 外部库路径(`.so` 文件)。这允许开发者轻松地加载自定义的 Lua 库或第三方库。 - **init_by_lua / init_by_lua_file / init_worker_by_lua / init_...

    ngx_cache_purge-2.0.tar.gz

    3. **编译Nginx**:进入Nginx源码目录,将ngx_cache_purge源码添加到Nginx模块列表中,例如`./configure --add-module=path/to/ngx_cache_purge-2.0`。 4. **编译和安装Nginx**:运行`make`和`make install`命令,这...

    headers-more-nginx-module-0.30.tar.gz

    描述中提到的"headers-more-nginx-module-0.30.tar.gz"进一步证实了这是一个版本号为0.30的模块源代码包,采用tar.gz格式进行压缩,这是Unix/Linux系统中常见的归档和压缩方式。用户通常需要先使用tar命令解压,再用...

Global site tag (gtag.js) - Google Analytics