nginx安装lua模块实现高并发

nginx安装lua扩展模块

1.下载安装LuaJIT-2.0.4.tar.gz

wget -c http://luajit.org/download/LuaJIT-2.0.4.tar.gz

tar xzvf LuaJIT-2.0.4.tar.gz

cd LuaJIT-2.0.4

make install PREFIX=/usr/local/luajit

#注意环境变量!

export LUAJIT_LIB=/usr/local/luajit/lib

export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0

2.下载解压ngx_devel_kit

wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz

tar -xzvf v0.3.0.tar.gz

3.下载解压lua-nginx-module

wget https://github.com/openresty/lua-nginx-module/archive/v0.10.8.tar.gz

tar -xzvf v0.10.8.tar.gz

4.下载安装nginx-1.10.3.tar.gz

wget http://nginx.org/download/nginx-1.10.3.tar.gz

tar -xzvf nginx-1.10.3.tar.gz

cd nginx-1.10.3

./configure --add-module=/opt/soft/ngx_devel_kit-0.3.0 --add-module=/opt/soft/lua-nginx-module-0.10.8

#注意ngx_devel_kit和lua-nginx-module以实际解压路径为准

make -j2

make install

注:报错gcc需要安装,可以执行

yum install -y gcc g++ gcc-c++

依赖报错,可以执行

yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel

5.验证

#将nginx做成命令

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

cd /usr/local/nginx/conf/

vi nginx.conf

#lua指令方式

#在server 中添加一个localtion

location /hello {

default_type ‘text/plain‘;

content_by_lua ‘ngx.say("hello, lua")‘;

}

#lua文件方式

#在server 中添加一个localtion

location /lua {

default_type ‘text/html‘;

content_by_lua_file conf/lua/test.lua; #相对于nginx安装目录

}

#test.lua文件内容

ngx.say("hello world");

#启动nginx(已经做了软连接了,可以在任何目录启动)

nginx

注:

报错nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory 可以执行

ln -s /usr/local/luajit/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2

具体source的路径已实际安装路径为准

window平台开发代码部署到Linux服务器

由于两个平台的不同导致脚本文件的编码类型不一致  部署后会出现一些诡异的问题

2018/09/07 19:19:30 [error] 6729#0: *22 failed to load external Lua file "/etc/nginx/lua/limit_reload.lua": /etc/nginx/lua/limit_reload.lua:1: ‘=‘ expected near ‘limitRuleStore‘, client: 192.168.11.134, server: localhost, request: "GET /limit/reload HTTP/1.1", host: "192.168.11.134:81"

异常现象

[[email protected] lua]# cat -A init_conf.lua
M-oM-;M-?--M-eM-.M-^ZM-dM-9M-^IM-eM-^EM-(M-eM-1M-^@M-eM-^OM-^XM-iM-^GM-^OM-oM-<M-^LM-iM-;M-^XM-hM-.M-$M-dM-;M-^NlualibM-iM-^GM-^LM-iM-^]M-"M-eM-^JM- M-hM-=M-=^M$
limit_req ^I= require "resty.limit.req"; ^M$
http ^I^I= require "resty.http";^M$
limitUtils ^I= require "limit_utils"; ^M$
limit_ntfy_url ^I^I= ^I"http://"..minigo_host.."/minigo/limitnotify/add";^M$

[[email protected] lua]# cat init_conf.lua
--定义全局变量,默认从lualib里面加载
limit_req     = require "resty.limit.req";
http         = require "resty.http";
limitUtils     = require "limit_utils";
cjson         = require "cjson";

[[email protected] lua]# file a.txt
a.txt: ASCII text
[[email protected] lua]# file init_conf.lua
init_conf.lua: UTF-8 Unicode (with BOM) text

[[email protected]-ds-itsgj-199-136-48 lua]# file limit_main.lua
limit_main.lua: ISO-8859 English text
[[email protected]-ds-itsgj-199-136-48 lua]# file limit_reload.lua
limit_reload.lua: ISO-8859 text
[[email protected]-ds-itsgj-199-136-48 lua]# 

查看文件编码

原文地址:https://www.cnblogs.com/yxh168/p/9606972.html

时间: 2024-10-08 13:43:08

nginx安装lua模块实现高并发的相关文章

nginx+lua+redis构建高并发应用

ngx_lua将lua嵌入到nginx,让nginx执行lua脚本,高并发,非阻塞的处理各种请求. url请求nginx服务器,然后lua查询redis,返回json数据. 一.安装lua-nginx-module 参见<LNMLGC>架构 二.安装redis2-nginx-module模块 get https://github.com/openresty/echo-nginx-module get https://github.com/openresty/redis2-nginx-modul

nginx+lua+redis构建高并发应用(转)

nginx+lua+redis构建高并发应用 ngx_lua将lua嵌入到nginx,让nginx执行lua脚本,高并发,非阻塞的处理各种请求. url请求nginx服务器,然后lua查询redis,返回json数据. 备注:centos或者redhat系统请跳转到nginx + ngx_lua安装测试 一.安装lua 1 2 3 # apt-get install lua5.1 # apt-get install liblua5.1-dev # apt-get install liblua5.

nginx 安装第三方模块(lua)并热升级

需求: nginx上将特定请求拒绝,并返回特定值. 解决办法: 使用lua脚本,实现效果. 操作步骤: 安装Luajit环境 重新编译nginx(原先nginx -V 配置一致,并新增两个模块ngx_devel_kit,lua-nginx-module) 热升级(不中断服务) 配置文件添加lua脚本: #匹配请求体里的 hello=world时返回此变量和值 location /hello { rewrite_by_lua_block { ngx.req.read_body() local ow

Nginx编译安装Lua模块

Nginx编译安装Lua模块 一.安装Lua环境及相关库 官网网址:https://github.com/openresty/lua-nginx-module LuaJIT ` wget http://luajit.org/download/LuaJIT-2.0.2.tar.gz make install PREFIX=/usr/local/LuaJIT export LUAJIT_LIB=/usr/local/LuaJIT/lib export LUAJIT_INC=/usr/local/Lu

Nginx安装lua支持

Nginx安装lua支持 需要LuaJIT-2.0.4.tar.gz,ngx_devel_kit,lua-nginx-module 1.下载安装LuaJIT-2.0.4.tar.gz wget -c http://luajit.org/download/LuaJIT-2.0.4.tar.gz tar xzvf LuaJIT-2.0.4.tar.gz cd LuaJIT-2.0.4 make install PREFIX=/usr/local/luajit #注意环境变量! export LUAJ

nginx安装第三方模块file_md5

HTTP协议新增了Content-MD5 HTTP头,但是nginx并不支持这个功能,而且官方也明确表示不会增加这项功能,为什么呢?因为每次请求都需要读取整个文件来计算MD5值,以性能著称的nginx绝对不愿意干出违背软件宗旨的事情.但是有些应用中,需要验证文件的正确性,有些人通过下载当前文件,然后计算MD5值来比对当前文件是否正确.不仅仅浪费带宽资源也浪费了大把的时间.有需求就有解决方案,网友开发了file-md5模块. 1. 下载模块file-md5 # cd /usr/local/src

nginx安装lua/replace-filter-nginx-module

nginx加载lua和replace-filter-nginx-module模块一.lua部分首先下载和安装部分模块1.下载安装LuaJIT官网:http://luajit.org/下载链接:http://luajit.org/download/LuaJIT-2.1.0-beta3.tar.gz wget http://luajit.org/download/LuaJIT-2.1.0-beta3.tar.gz tar zxvf LuaJIT-2.1.0-beta3.tar.gz cd LuaJI

Nginx+Redis+Ehcache:大型高并发与高可用的三层缓存架构总结

摘要: 对于高并发架构,毫无疑问缓存是最重要的一环,对于大量的高并发,可以采用三层缓存架构来实现,nginx+redis+ehcache Nginx 对于中间件nginx常用来做流量的分发,同时nginx本身也有自己的缓存(容量有限),我们可以用来缓存热点数据,让用户的请求直接走缓存并返回,减少流向服务器的流量 一.模板引擎 通常我们可以配合使用freemaker/velocity等模板引擎来抗住大量的请求 小型系统可能直接在服务器端渲染出所有的页面并放入缓存,之后的相同页面请求就可以直接返回,

nginx安装第三方模块

原已经安装好的nginx,现在需要添加一个未被编译安装的模块 举例说明:安装第三方的ngx_cache_purge模块(用于清除指定URL的缓存) nginx的模块是需要重新编译nginx,而不是像apache一样配置文件引用.so 1.wget http://labs.frickle.com/files/ngx_cache_purge-2.0.tar.gz tar -zxvf ngx_cache_purge-2.0.tar.gz cd /data0/software/nginx-1.1.10