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服务器

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

// :: [error] #: * failed to load external Lua file "/etc/nginx/lua/limit_reload.lua": /etc/nginx/lua/limit_reload.lua:: '=' expected near 'limitRuleStore', client: 192.168.11.134, server: localhost, request: "GET /limit/reload HTTP/1.1", host: "192.168.11.134:81"

异常现象

[root@localhost 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$ [root@localhost lua]# cat init_conf.lua
--定义全局变量,默认从lualib里面加载
limit_req = require "resty.limit.req";
http = require "resty.http";
limitUtils = require "limit_utils";
cjson = require "cjson"; [root@localhost lua]# file a.txt
a.txt: ASCII text
[root@localhost lua]# file init_conf.lua
init_conf.lua: UTF- Unicode (with BOM) text [root@hz-ds-itsgj--- lua]# file limit_main.lua
limit_main.lua: ISO- English text
[root@hz-ds-itsgj--- lua]# file limit_reload.lua
limit_reload.lua: ISO- text
[root@hz-ds-itsgj--- lua]#

查看文件编码

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

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

    nginx+lua+redis构建高并发应用 ngx_lua将lua嵌入到nginx,让nginx执行lua脚本,高并发,非阻塞的处理各种请求. url请求nginx服务器,然后lua查询redis, ...

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

    需求: nginx上将特定请求拒绝,并返回特定值. 解决办法: 使用lua脚本,实现效果. 操作步骤: 安装Luajit环境 重新编译nginx(目标机器上nginx -V 配置一致,并新增两个模块n ...

  3. Nginx使用Lua模块实现WAF

    前言:最近一段时间在写加密数据功能,对安全相关知识还是缺少积累,无意间接触到了WAF相关知识,刚好Nginx可以实现WAF功能,也简单学习了Lua这门语言,分享下 一.WAF产生的背景 过去企业通常会 ...

  4. Nginx安装echo模块

    echo-nginx-module 模块可以在Nginx中用来输出一些信息,可以用来实现简单接口或者排错. 项目地址:https://github.com/openresty/echo-nginx-m ...

  5. nginx + uWSGI 为 django 提供高并发

    django 的并发能力真的是令人担忧,这里就使用 nginx + uwsgi 提供高并发 nginx 的并发能力超高,单台并发能力过万(这个也不是绝对),在纯静态的 web 服务中更是突出其优越的地 ...

  6. nginx利用limit模块设置IP并发防CC攻击

    nginx利用limit模块设置IP并发防CC攻击 分类: 系统2013-01-21 09:02 759人阅读 评论(0) 收藏 举报 来源:http://blog.xencdn.net/nginx- ...

  7. vim编译安装+lua模块

    vim编译安装+lua模块 使用背景:代码自动补全插件,需要安装lua模块 安装准备,首先下载安装vim所依赖的其它安装包,ncurses,lua,readline,vim 源码下载,编译安装 ncu ...

  8. 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 ...

  9. 11: Nginx安装lua支持

    1.1 Nginx 使用lua脚本 注:需要LuaJIT-2.0.4.tar.gz,ngx_devel_kit,lua-nginx-module 1.Nginx安装lua支持 wget -c http ...

随机推荐

  1. python的类和对象(类的静态字段)

    转自:http://www.cnblogs.com/Eva-J/p/5044411.html 什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是 ...

  2. 深入理解JDBC的超时设置

    恰当的JDBC超时设置能够有效地减少服务失效的时间.本文将对数据库的各种超时设置及其设置方法做介绍. 真实案例:应用服务器在遭到DDos攻击后无法响应 在遭到DDos攻击后,整个服务都垮掉了.由于第四 ...

  3. make -j8以及linux下查看cpu的核数

    # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| ...

  4. Git入门到高级系列1-git安装与基础命令

    视频课程地址 腾讯课堂 为什么要进行项目文件的版本管理 代码备份和恢复 团队开发和协作流程 项目分支管理和备份 git 是什么? git是一个分布式的版本控制软件.版本控制是一种记录一个或若干文件内容 ...

  5. iOS开发下载文件速度计算

    当我们写下载界面的时候,需要向用户展示每秒下载多少KB,这个时候就需要计算速度.如下: 我用的是AFNetworking来做下载的,我们拿AFHTTPRequestOperation来举列,AFHTT ...

  6. Linux下用gSOAP开发Web Service服务端和客户端程序

    网上本有一篇流传甚广的C版本的,我参考来实现,发现有不少问题,现在根据自己的开发经验将其修改,使用无误:另外,补充同样功能的C++版本,我想这个应该更有用,因为能用C++,当然好过受限于C. 1.gS ...

  7. 如何在云端部署SAP HANA实战, Azure 上的 SAP HANA(大型实例)概述和体系结构

    什么是 Azure 上的 SAP HANA(大型实例)? Azure 上的 SAP HANA(大型实例)是一种针对 Azure 的独特解决方案. 除了提供 Azure 虚拟机以用于部署和运行 SAP ...

  8. idea hibernate反转pojo实体类和映射文件

  9. JavaScript Practices

    不定时更新:https://github.com/zhengyeye/JS-practices Day1:关于创建对象的几种方式: Day3:原型 早前一篇:https://www.cnblogs.c ...

  10. 微信小程序-bug-调用wx.login()无响应的原因和解决方案

    想必,最近有些小程序开发者,在调用wx.login()的时候,在部分IOS上无响应的情况: 补充一点:在测试模式,调试模式,都是OK的,一上正式环境就GG了,百思不得其解啊! 响应结果如下: 在suc ...