基于lnmp 在nginx中安装lua,并启用redis进行访问拦截;
宝塔下安装查看:https://www.cnblogs.com/l-zl/p/16598926.html
安装过程如下:
1. 安装lua,下载LuaJIT
cd /data/install/
wget -c https://github.com/openresty/luajit2/archive/refs/heads/v2.1-agentzh.zip
解压并重命名为lua,进入到目录中
在安装前需要打开makefile文件并找到
LDCONFIG= ldconfig -n 将其修改成: LDCONFIG= /sbin/ldconfig -n
make
make install PREFIX=/usr/local/luajit
添加环境变量:
export LUAJIT_LIB=/usr/local/luajit/lib
export LUAJIT_INC=/usr/local/luajit/include/luajit-2.1
加载类库:
cat > /etc/ld.so.conf.d/luajit.conf<<EOF
/usr/local/luajit/lib
EOF
ldconfig
2. 安装ngx_devel_kit和lua-nginx-module
下载 lua-nginx-module 地址:https://github.com/openresty/lua-nginx-module 并解压
wget -c https://github.com/openresty/lua-nginx-module/archive/refs/tags/v0.10.14.tar.gz
tar zxf v0.10.14.tar.gz
下载 ngx_devel_kit 地址:https://github.com/simpl/ngx_devel_kit 并解压
wget -c https://github.com/vision5/ngx_devel_kit/archive/refs/tags/v0.3.1.tar.gz
tar zxf v0.3.1.tar.gz
将解压的 ngx_devel_kit、lua-nginx-module 目录移动到 /data/install/lua/,便于下边更新nginx时使用
lnmp一键包目录下的lnmp.conf文件里的Nginx_Modules_Options加上编译参数
--with-ld-opt=-Wl,-rpath,/usr/local/luajit/lib --add-module=/data/install/lua/lua-nginx-module --add-module=/data/install/lua/ngx_devel_kit
Nginx_Modules_Options='--with-ld-opt=-Wl,-rpath,/usr/local/luajit/lib --add-module=/data/install/lua/lua-nginx-module --add-module=/data/install/lua/ngx_devel_kit'
lnmp一键包中升级脚本
执行upgrade.sh 这里是重点,如果仅仅是新增模块的话,则只需要填写与当前版本号相同的版本号即可,如果填写大于当前的版本号则代表的是升级新版本并安装指定扩展
cd /data/install/lnmp1.8
./upgrade.sh nginx
回车之后会让你输入要升级的版本号,此处可填写当前版本号
执行完之后检查是否安装成功,出现报错1:说resty.core
模块找不到
nginx: [alert] detected a LuaJIT version which is not OpenResty's; many optimizations will be disabled and performance will be compromised (see https://github.com/openresty/luajit2 for OpenResty's LuaJIT or, even better, consider using the OpenResty releases from https://openresty.org/en/download.html)
解决:
先卸载原有luajit
cd /data/install/lua
make uninstall
然后从https://github.com/openresty/luajit2下载安装
git clone https://github.com/openresty/luajit2
mv luajit2 lua && cd lua
make && make install
参考的地址:https://www.cnblogs.com/trustnature/articles/15250071.html
nginx -s reload 重启
nginx -V 查看安装情况
3. 下载lua链接redis的一个模块
下载 https://github.com/openresty/lua-resty-redis
wget -c https://github.com/openresty/lua-resty-redis/archive/refs/tags/v0.30.tar.gz
tar zxf v0.30.tar.gz
解压之后直接make install即可
cd lua-resty-redis-0.30
make install
返回结果:
4. nginx配置
nginx.conf 中增加引入lua路径 lua_package_path "/usr/local/lib/lua/resty/?.lua;/data/lua/?.lua;;";
vhost中的没个配置文件中的 php部分增加引入access_by_lua_file /data/lua/nginx_client_ip.lua;
5. 小问题
使用阿里云redis时,通过域名连接老是提示连接失败,报错:failed to connect: no resolver defined to resolve
解决方案:增加DNS
配置,在conf配置文件中增加resolver
配置,
问题解决浏览的地址:谢谢三位大哥,Cyning
https://learnku.com/articles/27778
https://blog.csdn.net/baidu_19473529/article/details/117738193