首页 > 在CentOS 6.9 x86_64的OpenResty 1.13.6.1上使用LuaRocks示例

在CentOS 6.9 x86_64的OpenResty 1.13.6.1上使用LuaRocks示例

下面是我阅读春哥OpenResty官网主页中“Using LuaRocks”一节的实操记录,整理如下。

https://openresty.org/cn/using-luarocks.html

1.在CentOS 6.9 x86_64搭建Lua开发环境

详细过程参见本博博文

http://blog.csdn.net/tao_627/article/details/78925211

2.通过LuaRocks安装 Lua MD5 库

在本示例中, 我们将使用Lua MD5 library作为服务器上的一个例子, 所以我们需要通过LuaRocks来安装它:

luarocks install md5

3.配置我们的OpenResty应用

vim nginx.conf

添加以下内容

worker_processes  1;   # we could enlarge this setting on a multi-core machine
user root;
error_log  logs/error.log warn;events {worker_connections  1024;
}http {#must use absolute pathlua_package_path '/root/or_test/conf/using_luarocks/?.lua;;';server {listen       80;server_name  localhost;location = /luarocks {#rewrite_by_lua_file "conf/using_luarocks/foo.lua";content_by_lua 'local foo = require("foo")foo.say("hello, luarocks!")--ngx.say("Hello world!")';}}
}

我们希望最终的目录结构如下





创建与conf下面的using_luarocks子文件夹存放lua文件

mkdir -p /root/or_test/conf/using_luarocks

存入foo.lua

module("foo", package.seeall)local bar = require "bar"ngx.say("bar loaded")function say (var)bar.say(var)
end
存入bar.lua

module("bar", package.seeall)local rocks = require "luarocks.loader"
local md5 = require "md5"ngx.say("rocks and md5 loaded")function say (a)ngx.say(md5.sumhexa(a))
end


4.开启Nginx服务

首先测试配置文件合法性

nginx -p ~/or_test -c ~/or_test/conf/using_luarocks.conf -t

重启OpenResty服务

nginx -p ~/or_test -c ~/or_test/conf/using_luarocks.conf -s reload

查看进程是否正常

ps auxf | grep nginx

查看端口是否启动

netstat -ntlp





5.测试我们的应用

现在我们通过curl 工具或者任意兼容HTTP协议的浏览器测试我们的应用:

curl -v http://localhost/luarocks

我们在第一次运行的时候得到以下的内容:

rocks and md5 loaded

bar loaded

85e73df5c41378f830c031b81e4453d2



第二次运行的时候得到以下内容:

85e73df5c41378f830c031b81e4453d2





6.基准测试

现在,让我们来做一些基准测试吧:

ab -c10 -n50000 http://127.0.0.1/luarocks

测试在是我的CentOS 6.9 x86_64虚拟机上进行的, 下面是测试中产生的数据







7.特殊说明

这里OpenResty默认包含了LuaJIT,系统中没有完整的lua程序,我使用源码安装了完整的lua,并继续安装了模块管理工具LuaRocks,

使用LuaRocks去安装其它lua相关的模块(OpenResty中没有包含的),并通过在nginx.conf中引用这些lua脚本来实现一些业务需求,比如这里的md5模块。这个思路是可行的。



8.参考文献

[1].https://openresty.org/cn/using-luarocks.html

更多相关:

  • 英语的重要性,毋庸置疑!尤其对广大职场人士,掌握英语意味着就多了一项竞争的技能。那,对于我们成人来说,时间是最宝贵的。如何短时间内在英语方面有所突破,这是我们最关心的事情。英语学习,到底有没有捷径可以走,是否可以速成?周老师在这里明确告诉大家,英语学习,没有绝对的捷径走,但是可以少走弯路。十多年的教学经验告诉我们,成功的学习方法可以借...

  • 展开全部 其实IDLE提供了一个显32313133353236313431303231363533e78988e69d8331333365663438示所有行和所有字符的功能。 我们打开IDLE shell或者IDLE编辑器,可以看到左下角有个Ln和Col,事实上,Ln是当前光标所在行,Col是当前光标所在列。 我们如果想得到文件代码...

  • 前言[1]从 Main 方法说起[2]走进 Tomcat 内部[3]总结[4]《Java 2019 超神之路》《Dubbo 实现原理与源码解析 —— 精品合集》《Spring 实现原理与源码解析 —— 精品合集》《MyBatis 实现原理与源码解析 —— 精品合集》《Spring MVC 实现原理与源码解析 —— 精品合集》《Spri...

  • 【本文摘要】【注】本文所述内容为学习Yjango《学习观》相关视频之后的总结,观点归Yjango所有,本文仅作为学习之用。阅读本节,会让你对英语这类运动类知识的学习豁然开朗,你会知道英语学习方面,我们的症结所在。学习英语这类运动类知识,需要把握四个原则第一,不要用主动意识。第二,关注于端对端第三,输入输出符合实际情况第四,通过多个例子...

  • 点云PCL免费知识星球,点云论文速读。文章:RGB-D SLAM with Structural Regularities作者:Yanyan Li , Raza Yunus , Nikolas Brasch , Nassir Navab and Federico Tombari编译:点云PCL代码:https://github.co...

  • Intellij IDEA解析jacoco结果文件的方法JaCoCo经常用来分析代码覆盖率,最方便的当然是在Jenkins中集成,能很定时分析代码覆盖率并查看变化情况。如果需要单独查看某一模块中的覆盖率,则可以借助IntelliJ IDEA。一、设置修改用Idea打开对应的项目代码,右上角编辑设置。将代码覆盖的runner修改为jac...

  • 前两天写了一篇关于《阿里Java开发手册中的 1 个bug》的文章,评论区有点炸锅了,基本分为两派,支持老王的和质疑老王的。首先来说,无论是那一方,我都真诚的感谢你们。特别是「二师兄」,本来是打算周五晚上好好休息一下的(周五晚上发布的文章),结果因为和我讨论这个问题,一直搞到晚上 12 点左右,可以看出,他对技术的那份痴迷。这一点我们...

  • 现在的以太网测试仪多数应用于以太网专线及NGN网络,多业务城域网络等各种测试环境。以太网测试仪表提供了强大的分析、统计和处理功能、支持符合IEE802.3标准的10/100/1000Mbps RJ45电口和波长可选的1000Mbps等等,可以用于线缆测试、以太网误码(一、二、三层 )测试、环回时延测试、RFC2544性能测试,支持以监...

  • 在2008年刚刚进入这个行业时,我对于要学什么东西,是迷茫的。记得我在08年的时候,入职的公司给我们这批新人做了培训。培训中介绍了很多概念,告诉我们质量很重要,软件测试前景很好,还教了我们很多软件测试理论知识,在最后还给我们介绍了所谓高大上的自动化测试和性能测试。然而,在之后的三年里,这些当时培训时给我灌输的错误知识,不断地给我职业生...

  • 说明 quic-go是使用Go来重写chromium中的QUIC协议,将来计划过渡到IETF版本的QUIC协议。 目前该协议还处于不断更新和活跃之中,目前IETF版本的QUIC协议草案版本号已经到draft 9 下面是我对REAME的实操记录,以作备忘。 项目主页 https://github.com/lucas-clement...