nginx lua模块淘宝开发的nginx第三方模块,它能将lua语言嵌入到nginx配置中,从而使用lua就极大增强了nginx的能力.nginx以高并发而知名,lua脚本轻便,两者的搭配堪称完美.接下来请看如何安装nginx + ngx_lua模块.以及最后来个简单的测试.
如果你是ubuntu系统,请看nginx+lua+redis构建高并发应用
系统环境:centos/redhat
安装前准备好如下软件包
· nginx 地址:http://www.nginx.org
· luajit 地址:http://luajit.org/download.html
· HttpLuaModule 地址:http://wiki.nginx.org/HttpLuaModule
1. 下载安装LuaJIT
OK Successfully built LuaJIT |
make [1]: Leaving directory `/usr/ local /src/LuaJIT-2.0.2/src'
|
==== Successfully built LuaJIT 2.0.2 ==== |
==== Successfully installed LuaJIT 2.0.2 to /usr/ local ====
|
2. 下载准备nginx lua模块
3. 安装nginx
3.1 安装
//先导入环境变量,告诉nginx去哪里找luajit |
3.1 常见错误
./objs/nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file : No such file or directory
|
4. nginx lua配置
nginx配置文件加入如下配置:
location ~* ^/2328(/.*) { |
default_type 'text/plain' ;
|
content_by_lua 'ngx.say("hello, ttlsa lua")' ;
|
5. 启动测试
5.1 启动nginx
5.2 访问测试
hello, ttlsa lua //使用curl测试 |
nginx lua测试截图
nginx lua测试
nginx ngx_lua的安装到此结束
转载请注明出处: http://www.ttlsa.com/html/2328.html
nginx+lua+redis构建高并发应用
ngx_lua将lua嵌入到nginx,让nginx执行lua脚本,高并发,非阻塞的处理各种请求。
url请求nginx服务器,然后lua查询redis,返回json数据。
备注:centos或者redhat系统请跳转到nginx + ngx_lua安装测试
一.安装lua
# apt- get install liblua5. 1 -dev
|
# apt- get install liblua5. 1 -socket2
|
二.安装nginx
# apt- get install git-core
|
# apt- get install libpcre3 libpcre3-dev libltdl-dev libssl-dev libjpeg62 libjpeg62-dev libpng12- 0 libpng12-dev libxml2-dev libcurl4-openssl-dev libmcrypt-dev autoconf libxslt1-dev libgd2-noxpm-dev libgeoip-dev libperl-dev -y
|
# tar zxvf nginx- 1.0 . 8 .tar.gz
|
# ./configure --prefix=/usr/local/nginx -- with -debug -- with -http_addition_module \
|
-- with -http_dav_module -- with -http_flv_module -- with -http_geoip_module \
|
-- with -http_gzip_static_module -- with -http_image_filter_module -- with -http_perl_module \
|
-- with -http_random_index_module -- with -http_realip_module -- with -http_secure_link_module \
|
-- with -http_stub_status_module -- with -http_ssl_module -- with -http_sub_module \
|
-- with -http_xslt_module -- with -ipv6 -- with -sha1=/usr/ include /openssl \
|
-- with -md5=/usr/ include /openssl -- with -mail -- with -mail_ssl_module \
|
--add-module=../ngx_devel_kit \ |
--add-module=../echo-nginx-module \ |
--add-module=../lua-nginx-module \ |
--add-module=../redis2-nginx-module \ |
--add-module=../ngx_http_upstream_keepalive \ |
--add-module=../ set -misc-nginx-module
|
三.安装lua-redis-parser
# export LUA_INCLUDE_DIR=/usr/ include /lua5. 1
|
四.安装json
# unzip json4lua- 0.9 . 50 .zip
|
# cp json4lua- 0.9 . 50 /json/json.lua /usr/share/lua/ 5.1 /
|
五.安装redis-lua
# cp redis-lua/src/redis.lua /usr/share/lua/ 5.1 /
|
六.配置
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000 ;
|
error_log logs/error.log notice; |
worker_rlimit_nofile 60000 ;
|
default_type application/octet-stream; |
access_log logs/access.log; |
types_hash_max_size 2048 ;
|
server 192.168 . 1.39 : 6379 ;
|
server_name 192.168 . 1.211 ;
|
set_unescape_uri $key $arg_key; |
redis2_query hgetall $key; |
content_by_lua_file conf/fuck.lua; |
# vim fuck.lua
local json = require( "json" )
|
local parser = require( "redis.parser" )
|
local res = ngx.location.capture( "/get_redis" ,{
|
args = { key = ngx. var .arg_key }
|
if res.status == 200 then
|
reply = parser.parse_reply(res.body) |
value = json.encode(reply) |
七.测试
# redis-cli -h 192.168.1.39
redis 192.168 . 1.39 : 6379 > HMSET ttlsa www www.ttlsa.com mail mail.ttlsa.com
|
# curl ‘http://192.168.1.211/json?key=ttlsa’
[ "www" , "www.ttlsa.com" , "mail" , "mail.ttlsa.com" ]
|
www.ttlsa.com
如需转载请注明出处: nginx+lua+redis构建高并发应用
分享到:
相关推荐
ngx_lua_module是一款强大的扩展模块,专为Nginx服务器设计,允许在Nginx配置文件中直接嵌入Lua脚本,极大地增强了Nginx的功能和灵活性。这个"ngx_lua_module-windows-1.1.2.0"是该模块的一个Windows版本,适应于...
ngx_lua 是一个强大的 Lua 脚本绑定模块,用于 ngx_openresty,这是一个全面的、高性能的、企业级的 Lua 开发平台,基于 Nginx。ngx_lua 允许开发者在 Nginx 的事件驱动、非阻塞 I/O 模型下编写服务器端的 Lua 应用...
ngx_lua是Nginx的一个模块,它通过Lua语言和协程机制解决了传统架构并发度低、内存开销大和开发维护困难的问题。其提供的异步非阻塞I/O访问接口使得业务逻辑的开发变得更加简洁高效。ngx_lua的设计充分发挥了Lua的轻...
ngx_lua_waf是一个基于Nginx的Web应用防火墙,其核心是利用了Nginx的ngx_lua模块,通过Lua脚本实现灵活且强大的安全防护功能。ngx_lua_waf项目名称中的“master”通常指的是该项目的主分支或最新版本。"nearly11h...
本文将介绍如何在CentOS 7 64位系统上配置Nginx服务器,集成ngx_lua模块以支持Web应用防火墙(WAF)防护功能。Nginx是一款轻量级、高性能的Web服务器和反向代理服务器,因其高效并发处理能力而被广泛应用于各大...
lua-upstream-nginx-module, Nginx C 模块将Lua向ngx_lua公开,用于 Nginx upstreams 电子邮件名称ngx_http_lua_upstream - Nginx MODULE,用于向 Nginx upstreams公开Lua到 ngx_lua目录NAME状态概要说明函数get_...
根据提供的文件内容,这篇文档主要围绕在UPYUN云平台上使用ngx_lua模块与Nginx结合进行编程和配置的详细指南。下面将详细梳理这些知识点。 ### 标题知识点 - **ngx_lua**: 这是Nginx的一个模块,它允许Nginx执行Lua...
ngx_lua 模块是Nginx与Lua交互的核心。通过该模块,可以在Nginx配置文件中直接插入Lua代码,实现动态逻辑处理。Lua脚本可以直接访问Nginx的上下文信息,如请求头、请求体、响应头等,也可以调用Nginx API执行诸如...
本教程将详细解析如何使用Nginx、upload模块以及lua来搭建一个简单的文件上传系统。 首先,我们需要了解Nginx的ngx_http_upload_module模块,这是一个用于处理HTTP POST请求中的文件上传的第三方模块。它允许我们在...
### Nginx ngx_lua 模块原理与内置函数详解 #### 概述 Nginx 是一款高性能的 HTTP 和反向代理 Web 服务器,而 ngx_lua 模块则是 Nginx 的一个强大扩展,它允许在 Nginx 中直接嵌入 Lua 脚本进行动态内容处理和请求...
nginx+lua+redis通过匹配客户端ip进行灰度发布 本文将讲述如何使用nginx、lua和redis来实现灰度发布,通过匹配客户端IP来实现灰度发布。灰度发布是一种常见的软件发布方式,它允许开发者在生产环境中发布新的版本,...
1. **ngx_lua 模块介绍**:ngx_lua 是由 OpenResty(一个基于 Nginx 的高性能 Web 开发框架)提供的,它允许在 Nginx 配置文件中直接编写 Lua 脚本,实现了 HTTP 请求的实时处理,包括请求的接收、响应的构建以及与...
ngx_lua 是一个 NGINX 的第三方扩展模块,它能够将 Lua 代码嵌入到 NGINX 中来执行。UPYUN 的 CDN 大量使用了 NGINX 作为反向代理服务器,并开发了一系列例如流量统计、缓存调度、防盗链等相关的 C 模块,但从 2013 ...
Lua-Nginx-Module,简称lua-nginx-module,是Nginx服务器的一个重要扩展模块,它将强大的Lua脚本语言集成到Nginx中,允许用户在Nginx配置文件中直接编写Lua代码,极大地增强了Nginx的功能性和灵活性。版本0.10.13是...
ngx_openresty-1.7.7.2/bundle目录里存放着nginx核心和很多第三方模块,比如有我们需要的Lua和LuaJIT。 3.安装LuaJIT cd bundle/LuaJIT-2.1-20150120/ make clean && make && make install ln -sf luajit-2.
### Bypass ngx_lua_waf SQL注入防御方法解析 #### 0x00 前言 ngx_lua_waf是一款基于ngx_lua的Web应用防火墙,以其高性能与轻量级著称。它内置了一系列针对常见攻击手段如SQL注入的防御规则。然而,在实际应用中,...
lua-resty-consul, 库与ngx_lua中的consul接口的接口 lua-resty-consul库与ngx_lua中的consul接口的接口目录概述依赖项方法新插件 。get_decodedget_json_decoded把了删除get_client_body_reader
### Bypass ngx_lua_waf SQL注入防御方法解析 #### 0x00 前言 ngx_lua_waf是一款基于ngx_lua的Web应用防火墙,以其高性能和轻量级著称。它内置了一系列针对常见攻击手段(如SQL注入)的防御规则。然而,任何安全...