非openresty方式安装Nginx + Lua + Redis 环境
一、功能实现介绍:
使用Redis做分布式缓存;使用lua API来访问redis缓存;使用nginx向客户端提供服务,ngx_lua将lua嵌入到nginx,让nginx执行lua脚本,高并发,非阻塞的处理各种请求。url请求nginx服务器,然后lua查询redis,返回json数据。
二、服务器环境介绍:
系统:CentOS release 6.8 (Final) x86_64位 最小化安装
服务器型号:PowerEdge R630 磁盘是ssd盘
服务器上已存在服务: 是一件安装包lnmp环境
服务版本:nginx/1.10.0 PHP/5.5.36 mysql/5.6.20
lnmp一键安装包下的nginx编译安装的模块如下:
三、编译安装前先下载相关的nginx第三方模块并且yum安装相关的依赖包:
yum -y install pcre pcre-devel openssl openssl-devel lua-devel
下载相关的nginx第三方模块:
3.1.模块存放目录:/opt/soft
3.2.下载相关的软件包和模块
3.2.1下载ngx_devel_kit
(NDK(nginx development kit)模块,是一个拓展nginx服务器核心功能的模块,第三方模块开发可以基于它来快速实现。
3.2.2 下载lua-nginx-module模块
可在 Nginx 中嵌入 Lua 语言,让 Nginx 可以支持 Lua 强大的语法。
3.2.3redis2-nginx-module下载
是一个支持 Redis 2.0 协议的 Nginx upstream 模块,它可以让 Nginx 以非阻塞方式直接防问远方的 Redis 服务,同时支持 TCP 协议和 Unix Domain Socket 模式,并且可以启用强大的 Redis 连接池功能。
3.2.4set-misc-nginx-module下载
是标准的HttpRewriteModule指令的扩展,提供更多的功能,如URI转义与非转义、JSON引述,Hexadecimal、MD5、SHA1、Base32、Base64编码与解码、随机数等等
3.2.5echo-nginx-module下载
是一个 Nginx 模块,提供直接在 Nginx 配置使用包括 “echo”, “sleep”, “time” 等指令。
3.2.6Nginx下载
3.2.7pcre-8.40.tar.gz下载
如果 服务器没有安装pcre,在编译完nginx后执行make install时会报错,所以要在编译nginx时,提前编译安装好pcre-8.40.tar.gz
3.2.8redis-3.2.8.tar.gz下载并编译安装完成
四.安装软件:
4.1查看所有下载完的包
安装包解压后的路径:
[root@localhost opt]# ll /opt/
4.2安装luajit:
下面需要配置一下 luajit的环境变量(Nginx编译时需要)
4.3是安装pcre:
4.4编译安装nginx:
编译安装完成nginx服务必须 restart才能生效
4.5安装lua-redis-parser
lua-resty-redis是openresty(1.9.15.1)的一个组件,简单来说,它提供一个lua语言版的redis API,使用socket(lua sock)和redis通信。
下载源码包:
到此处,环境已经部署完成,小伙伴们期待接下来的演示吧
五、常见的误区解释说明
5.1redis2-nginx-module和lua-resty-redis
redis2-nginx-module是一个openresty(1.9.15.1)自带的模块。它能够把请求转发给upstream(redis2_pass)。注意它和lua-resty-redis不同,lua-resty-redis是一个lua语言版的redis API,使用socket(lua sock)和redis通信。而redis2-nginx-module是把请求转发给别的upstream。
5.2编译安装报错之一:
解决问题参考地址:
https://www.ctolib.com/topics-100588.html
重新编译安装nginx,问题解决
参考文档:
https://github.com/Tinywan/Lua-Nginx-Redis
https://www.cnblogs.com/tinywan/p/6534151.html
https://blog.csdn.net/xiaofei0859/article/details/48052341
https://blog.csdn.net/ygm_linux/article/details/53534933