首先,为什么要这么做呢,使用openresty不就可以支持lua了吗,没错。
那这篇文章结束吧!
不过…openresty不能支持会话保持和主动健康检测,我想拥有tengine的功能,又想支持lua,只有两种办法:

第一种:使用tengine作为基础,去新增支持lua的模块;
第二种:使用openresty作为基础,去新增tengine的会话保持和健康检测模块;

这个时候问题很多的网友又说了,第三种自己开发一个都支持的nginx不就可以了!

  • 说得好呀,以后不要再说了。

其实两种方法我都试了,一开始我以为使用openresty作为基础去新增tengine的模块是最好的,因为tengine的模块看上去很好编译进去,试了很多次,下了很多个版本,宣告失败。。。裂幵。
openresty的版本总是能和tengine我所需模块的版本进行完美的冲突,反正我当时是解决不了,或许能解决,但我想着尝试下使用tengine装个支持lua的模块,可能比我在这里死磕要更快。

诚不欺我,果然还是不顺利;

但是最终成功了。

下载地址:

https://codeload.github.com/openresty/lua-nginx-module/tar.gz/refs/tags/v0.10.9rc7
https://codeload.github.com/vision5/ngx_devel_kit/tar.gz/v0.3.0
http://luajit.org/download/LuaJIT-2.0.4.tar.gz

成功的关键就是上面这些组件必须相对应,网上推荐了很多种组合,试了都不行,最终自己一个个小版本的换,换了几个版本翻到一篇文章,那个老哥跟我一样踩了很多坑,然后最终得出使用上面的三个是可行的,随后我肯定就是先照抄了…果然可以!!!
只说怎么安装,却不说在哪里下载,等于没说,所以tengine的下载地址是:

http://tengine.taobao.org/download/tengine-2.3.2.tar.gz
#jemalloc是tengine用于内存管理的插件
https://github.com/jemalloc/jemalloc/archive/refs/tags/4.2.1.tar.gz

开始安装

# 安装依赖
yum install gcc gcc-c++ openssl-devel pcre-devel make postgresql-devel -y
#安装jemalloc,用于内存管理
tar xf jemalloc-4.2.1.tar
mv jemalloc-4.2.1 /data/jemalloc-4.2.1
cd /data/jemalloc-4.2.1
./configure --prefix=/data/jemalloc-4.2.1
make && make install
#安装luajit
cd -
tar xf 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
#解压模块
cd ..
tar xf lua-nginx-module-0.10.9rc7.tar.gz -C /usr/local/src
tar xf ngx_devel_kit-0.3.0.tar.gz -C /usr/local/src
#创建nginx用户
useradd -s /sbin/nologin nginx
#安装nginx,加载ngx_http_upstream_check_module模块,加载会话保持模块,开启jemalloc,加载lua编辑模块
cd -
cd ..
tar xf tengine-2.3.2.tar.gz
cd tengine-2.3.2
#编译nginx,安装目录为/data/nginx,使用nginx用户和组,加载了会话保持、健康检测、lua模块
 ./configure --prefix=/data/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre --with-stream --with-http_realip_module --with-jemalloc=/data/jemalloc-4.2.1 --add-module=./modules/ngx_http_upstream_check_module/ --add-module=./modules/ngx_http_upstream_session_sticky_module --with-ld-opt="-Wl,-rpath,/usr/local/luajit/lib"          --add-module=/usr/local/src/ngx_devel_kit-0.3.0          --add-module=/usr/local/src/lua-nginx-module-0.10.9rc7
make && make install
#创建配置文件子目录
mkdir /data/nginx/conf/conf.d/ -p
#给目录授权
chown -R nginx:nginx /data/nginx
#启动nginx
/data/nginx/sbin/nginx
#创建软连接
ln -s /data/nginx/sbin/nginx /usr/local/sbin/nginx

安装完成,大家自行去测试一下lua和健康检测,lua这玩意会的自然会,不会的看这篇文章也没有意义。
tengine的一些功能可以去参考官网的文档,我这里再说一遍也没有意义,也没有官网说得好。

http://tengine.taobao.org/documentation_cn.html