热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Nginx模板nginx_lua_module和echo-nginx-module安装过程

ngx_lua_module是一个nginxhttp模块,它把lua解析器内嵌到nginx,用来解析并执行lua语言编写的网页后台脚本。特性:支持Windows和Linux平台。支持高并发高性能。HTML网页中内嵌LUA脚本代码,类似于PHP。支持非阻塞的数据库操作,目前只支持MYSQL。支持
ngx_lua_module 是一个nginx http模块,它把 lua 解析器内嵌到 nginx,用来解析并执行lua 语言编写的网页后台脚本。

特性:
支持Windows和Linux平台。
支持高并发高性能。
HTML网页中内嵌LUA脚本代码,类似于PHP。
支持非阻塞的数据库操作,目前只支持MYSQL。
支持异步的文件IO操作。
支持非阻塞的SOCKET IO操作。

下面简要介绍下 ngx_lua_module 模块的安装。
方式一:使用大牛 ZhangYichun 提供的集成包快速安装。
非常简单,下载 ngx_openresty,该集成包中有:Nginx,Lua或Luajit,ngx_lua,以及一些有用的Nginx第三方模块。
安装步骤:
./configure --with-luajit
make
make install
安装完成!

方式二:Ngx_lua可以手动编译进Nginx。
首先,我的 Nginx 安装路径为:/usr/local/nginx。
我将尝试编译的两个模块:echo,lua。所需要的模块如下:
liujit             http://luajit.org
lua                http://www.lua.org
ngx_devel_kit      https://github.com/simpl/ngx_devel_kit
echo-nginx-module  https://github.com/agentzh/echo-nginx-module
lua-nginx-module   https://github.com/chaoslawful/lua-nginx-module

安装步骤:
1、Luajit2.0(推荐)或者 Lua5.1(Lua5.2暂不支持)
wget http://luajit.org/download/LuaJIT-2.0.0-beta9.tar.gz
tar zxvf LuaJIT-2.0.0-beta9.tar.gz
cd LuaJIT-2.0.0-beta9
make
sudo make install PREFIX=/usr/local/luajit
Note: to avoid overwriting a previous version,
the beta test releases only install the LuaJIT executable under the versioned name (i.e. luajit-2.0.0-beta10). 
You probably want to create a symlink for convenience, with a command like this:
sudo ln -sf luajit-2.0.0-beta9 /usr/local/bin/luajit (加上这句命令)

下面需要配置一下 luajit 或 lua 的环境变量(Nginx编译时需要):
-- luajit --
# tell nginx's build system where to find LuaJIT:
export LUAJIT_LIB=/path/to/luajit/lib
export LUAJIT_INC=/path/to/luajit/include/luajit-2.0
-- lua --
# or tell where to find Lua if using Lua instead:
export LUA_LIB=/path/to/lua/lib
export LUA_INC=/path/to/lua/include
我的测试环境里,配置如下:
export LUAJIT_LIB=/usr/local/luajit/lib
export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0

2、安装 ngx_devel_kit (NDK) 模块
cd /usr/local
git clone https://github.com/simpl/ngx_devel_kit.git
下载完成后,将在 /usr/local/ 目录下生成子目录 ngx_devel_kit。

3、安装 lua-nginx-module 模块
cd /usr/local
git clone https://github.com/chaoslawful/lua-nginx-module.git
下载完成后,将在 /usr/local/ 目录下生成子目录 lua-nginx-module。

4、重新编译Nginx,需要注意编译顺序!
./configure --prefix=/usr/local/nginx \
            --with-ld-opt="-Wl,-rpath,$LUAJIT_LIB" \
            --add-module=/usr/local/ngx_devel_kit \
            --add-module=/usr/local/echo-nginx-module \
            --add-module=/usr/local/lua-nginx-module
make -j2
make install
注释:重新编译 Nginx 二进制,Nginx 需要 quit 再启动。而普通配置更新则 reload 即可: kill -HUP `cat /path/nginx/logs/nginx.pid`
/usr/local/nginx/sbin/nginx -s reload
模块编译成功!重启Nginx服务器!
我在编译安装 Nginx 的第三方模块时,碰到一个错误:
/usr/local/nginx/sbin/ngxin -s reload
/usr/local/nginx/sbin/nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory
百事不得其解,后来Google之,发现了解决办法。
在 Nginx 编译时,需要指定 RPATH,加入下面选项即可:
./configure --with-ld-opt="-Wl,-rpath,$LUAJIT_LIB"
或者
export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH

5、测试Lua
在Nginx.conf 配置文件中,加入以下代码:
location /echo {
        default_type 'text/plain';
        echo 'hello echo';
}
location /lua {
        default_type 'text/plain';
    content_by_lua 'ngx.say("hello, lua")';
}
重启Nginx服务器: /usr/local/nginx/sbin/nginx -s reload

使用curl测试:
[root@localhost] curl http://localhost/echo
hello echo
[root@localhost] curl http://localhost/lua
hello lua

测试结果表明,两个模块都安装成功!关于ngx_lua模块的详细文档见下:
http://wiki.nginx.org/HttpLuaModule
推荐阅读
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
  • 本文介绍如何在Linux服务器之间使用SCP命令进行文件传输。SCP(Secure Copy Protocol)是一种基于SSH的安全文件传输协议,支持从远程机器复制文件到本地服务器或反之。示例包括从192.168.45.147复制tomcat目录到本地/home路径。 ... [详细]
  • Composer Registry Manager:PHP的源切换管理工具
    本文介绍了一个用于Composer的源切换管理工具——Composer Registry Manager。该项目旨在简化Composer包源的管理和切换,避免与常见的CRM系统混淆,并提供了详细的安装和使用指南。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • YB02 防水车载GPS追踪器
    YB02防水车载GPS追踪器由Yuebiz科技有限公司设计生产,适用于车辆防盗、车队管理和实时追踪等多种场合。 ... [详细]
  • 离线环境下的Python及其第三方库安装指南
    在项目开发中,有时会遇到电脑只能连接内网或完全无法联网的情况。本文将详细介绍如何在这种环境下安装Python及其所需的第三方库,确保开发工作的顺利进行。 ... [详细]
  • 俗话说得好,“工欲善其事,必先利其器”。这句话不仅强调了工具的重要性,也提醒我们在任何项目开始前,准备合适的工具至关重要。本文将介绍几款C语言编程中常用的工具,帮助初学者更好地选择适合自己学习和工作的编程环境。 ... [详细]
author-avatar
uikankan
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有