Nginx/Lua/ngx_lua简介
Nginx优点
1) Nginx:一个主进程多个工作进程的工作模式,每个进程是单线程来处理多个连接,每个工作进程采用了非阻塞I/O来处理多个连接,能减少了线程上下文切换,实现了公认的高性能、高并发;
2) 在生产环境中,通过把CPU绑定给Nginx工作进程来提升其性能;
3) 单线程工作模式典型特点是内存占用非常少;
4) Nginx更改配置重启速度非常快,可以毫秒级,且支持不停止Nginx进行升级Nginx版本、动态重载Nginx配置;
5) Nginx模块多,功能强大,可以作为Http负载均衡、TCP负载金恒、内容缓存、Web服务器、反向代理、访问控制等。
Lua优点
1) Lua:轻量级、可嵌入式脚本语言,可以非常容易的嵌入到其他语言中使用。
2) Lua提供协程并发,以同步调用的方式进行异步执行,从而实现并发,比回掉机制的并发代码更容易编写、理解、排查问题;
3) Lua提供闭包机制,函数可作为First Class Value进行参数传递,并实现了标记清楚垃圾收集
4) Lua的小巧轻量级,使其可以在Nginx中嵌入Lua VM,请求时创建一个VM,请求结束的时候回收VM
Ngx_lua简介
1) Ngx_lua是Nginx的一个模块,将Lua嵌入到Nginx中,可实现用Lua编写脚本,将Lua编写的应用脚本,部署到Nginx中运行,将Nginx变成一个Web容器,从而开发人员可以使用Lua语言开发高性能的Web应用。
2) Ngx_lua提供与Nginx交互的很多API,学习API就可以进行功能开发,其开发与Servlet类似,主要是接受请求、参数解析、功能处理、返回响应等。
Nginx+Lua安装详解
平台:ARM服务器
操作系统:CentOS 7.3/CentOS 7.4
软件安装:Nginx + LuaJit + nginx-lua安装
1、 安装所需依赖
yum -y install gcc gcc-c++ autoconf automake
yum install pcre
yum install pcre-devel
yum install openssl openssl-devel
yum -y install zlib zlib-devel
备注:
pcre是一个Perl库,包括perl兼容的正则表达式库。Nginx的HTTP rewrite模块依赖PCRE。
OpenSSL是安全套接字层密码库,包括主要密码算法、常用的秘钥和整数封装管理功能及SSL协议,并提供丰富的应用程序共测试或其他目的使用。
LuaJIT是Lua运行环境,即采用C语言写的Lua代码的解释器
2、 下载并安装LuaJit-2.1.0-beta2
1)下载
https://github.com/cbaylis/luajit-aarch64/tree/aarch64-v2.1-new
备注:此处需下载ARM平台的LuaJit,否则在启动Nginx服务器时,程序会coredump。
2)解压
unzip luajit-aarch64-aarch64-v2.1-new.zip
3)安装
cd luajit-aarch64-aarch64-v2.1-new/
make PREFIX=/usr/local/luajit
make install PREFIX=/usr/local/luajit
4)建立软件连
ln -sf luajit-2.1.0-beta2/usr/local/luajit/bin/luajit
5)导出系统环境变量
exportLUAJIT_LIB=/usr/local/luajit/lib
exportLUAJIT_INC=/usr/local/luajit/include/luajit-2.1
6)建立软连接
ln -s/usr/local/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2
7)将libluajit动态库读入缓存中
在/etc/ld.so.conf中加入对应路径:
/usr/local/luajit/lib/
执行ldconfig即可。
3、 下载并解压ngx_devel_kit-0.2.19
1) 下载
https://github.com/simpl/ngx_devel_kit/archive/v0.2.19.tar.gz
2) 解压
tar zxvf ngx_devel_kit-0.2.19
4、 下载并解压lua-nginx-module-0.10.8
1) 下载
https://github.com/openresty/lua-nginx-module/tags
2) 解压
tar -zxvf lua-nginx-module-0.10.8.tar.gz
5、 下载并安装Nginx,ngx_devel_kit-0.2.19,lua-nginx-module-0.10.8
1) 下载nginx-1.10.3.tar.gz
http://nginx.org/en/download.html
2) 解压
tar -zxvf nginx-1.10.3.tar.gz
3) 配置
./configure --add-module=../ngx_devel_kit-0.2.19/--add-module=../lua-nginx-module-0.10.8/
注意:要正确配置ngx_devel_kit-0.2.19和lua-nginx-module-0.10.8对应的路径
4) 编译
make -j
5) 安装
make install
6、 测试nginx + lua的搭建是否成功
1) 在/usr/local/nginx/conf的nginx.conf中添加如下信息:
location ~* ^/2328(/.*) {
default_type 'text/plain';
content_by_lua'ngx.say("hello, ttlsa lua")';
}
2) 在/usr/local/nginx/sbin目录下启动nginx服务
cd /usr/local/nginx/sbin
nginx
3) 在浏览器中范围对应的网页测试即可
登录:http://**.*.***.***/2328/
访问成功,显示:hello, ttlsa lua
7、 查看启动的nginx服务
ps -ef | grep nginx
参考:
https://blog.csdn.net/u013197629/article/details/73609060
http://jinnianshilongnian.iteye.com/blog/2280928