linux系统安装Nginx Lua环境

负载均衡师
• 阅读 112

亦可参考官方安装指南: lua-nginx-module Installation

这是我总结的安装,供参考:

需要最新版的Nginx,LuaJIT,ngx_devel_kit,lua-nginx-module等安装文件:

Nginx
LuaJIT Lua或者LuaJIT都是可以的,但是出于性能的考虑,推荐安装LuaJIT
ngx_devel_kit
lua-nginx-module
参考命令下载:

$ curl -O http://nginx.org/download/nginx-1.10.1.tar.gz
$ curl -O http://luajit.org/download/LuaJIT-2.1.0-beta2.tar.gz
$ curl -L -O https://github.com/simpl/ngx_devel_kit/archive/v0.2.19.tar.gz
$ curl -L -O https://github.com/openresty/lua-nginx-module/archive/v0.10.5.tar.gz

安装LuaJIT

$ wget http://luajit.org/download/LuaJIT- .tar.gz
$ tar zxvf LuaJIT- .tar.gz
$ cd LuaJIT-
$ make
$ sudo make install

编译安装lua-nginx-module

export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/usr/local/include/luajit-2.1

cd nginx-1.10.1
./configure --prefix=/opt/nginx --with-ld-opt="-Wl,-rpath,/usr/local/lib" --add-module=/path/to/ngx_devel_kit-0.3.0 --add-module=/path/to/nginx/lua-nginx-module-0.10.5
make
make install

动态module方式

Nginx 1.9.11 开始可以编译module为一个动态module,在执行./configure命令时用–add-dynamic-module=PATH替换–add-module=PATH。编译后可以在nginx.conf配置中使用 load_module 来动态加载这个module:

load_module /path/to/modules/ndk_http_module.so;
load_module /path/to/modules/ngx_http_lua_module.so;
lua cjson install

Eureka Zuul 网关

安装编译cjson需要lua运行时,编译前需要修改MakeFile中的LUA_VERSION、LUA_INCLUDE_DIR、LUA_CMODULE_DIR参数,让cjson模块知道lua库文件和头文件目录,才可以正常编译安装。

下载解压:

wget http://www.kyne.com.au/~mark/software/download/lua-cjson-2.1.0.tar.gz
tar -zxvf cjson-2.1.0.tar.gz
cd cjson-2.1.0

修改MakeFile:

LUA_VERSION = luajit-2.1
LUA_INCLUDE_DIR = $(PREFIX)/include/$(LUA_VERSION)
LUA_CMODULE_DIR = $(PREFIX)/lib

make & sudo make install
sudo cp cjson.so /usr/local/lib/lua/5.1/
点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Stella981 Stella981
4年前
Nginx配置https
一、开启nginx的ssl模块1.未安装过nginx,编译安装配置参数如下:./configure\prefix/usr/local/nginx\withpcre\withhttp\_ssl\_modulessl模块\withhttp\_stub\_status\_module\wit
Wesley13 Wesley13
4年前
Lua中cJson的读写
这里采用的是LuaCJson库,是一个高性能的JSON解析器和编码器,其性能比纯Lua库要高10~20倍。并且LuaJson完全支持UTF8,无需以来其他非Lua/LuaJit相关包。环境安装这里就不详细写了,随便问下谷歌就有一大堆答案。示例代码解析JSONlocal cjson  requi
Stella981 Stella981
4年前
NGINX openrestry
nginx中的变量:在Nginx配置中,变量只能存放一种类型的值,因为也只存在一种类型的值,那就是字符串。Nginx变量创建或者定义发生在nginx启动阶段,赋值操作只会发生在请求实际处理的时候在lua脚本里面引用nginx变量是需要使用ngx.var.name的方式lua当中的ngx.say和n
Easter79 Easter79
4年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
4年前
Bypass ngx_lua_waf SQL注入防御(多姿势)
0x00前言ngx\_lua\_waf是一款基于ngx\_lua的web应用防火墙,使用简单,高性能、轻量级。默认防御规则在wafconf目录中,摘录几条核心的SQL注入防御规则:select.(from|limit)(?:(union(.?)select))(?:from\Winformation_schema\W)这边
Wesley13 Wesley13
4年前
centos6.7 安装openresty
openresty在nginx上使用luajit构建nginx的应用依赖模块yuminstallreadlinedevelpcredevelopenssldevelgcc 安装过程大同小异1.官方下载https://openresty.org/en/download.html wget https://open
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究