tengine 是基于 Nginx 开发的高性能 Web 服务器和反向代理服务器,它由淘宝网(阿里系)团队在 Nginx 基础上进行了扩展和优化,本质上属于 Nginx 的增强版,完全兼容 Nginx 的配置和模块,同时增加了许多实用功能。
Tengine 内部集成了对 Lua 的支持,无需额外安装即可使用 Lua 脚本扩展功能。
使用
location / {
content_by_lua_block {
-- 设置响应类型为JSON
ngx.header['Content-Type'] = 'application/json; charset=utf-8'
-- 返回JSON数据
ngx.say('{"code":2006,"data":[],"message":"请求成功"}')
}
}
- 尝试加载 resty.mysql 模块
local ok, mysql = pcall(require, "resty.mysql")
if ok then
ngx.say(cjson.encode({
status = "success",
message = "resty.mysql 模块已安装",
module = "resty.mysql"
}))
else
ngx.say(cjson.encode({
status = "error",
message = "resty.mysql 模块未安装或加载失败",
error_detail = mysql -- 显示具体错误信息
}))
end
安装mysql,正常执行这个安装就可以了
我下载的https://download.csdn.net/download/qq_34631220/91789024
# 强制删除可能损坏的文件,如果发现文件,还是加载失败,执行删除损坏文件
rm -f /www/server/nginx/lib/lua/resty/mysql.lua
# 从官方仓库重新下载(确保完整),安装
wget -O /www/server/nginx/lib/lua/resty/mysql.lua https://raw.githubusercontent.com/openresty/lua-resty-mysql/v0.21/lib/resty/mysql.lua
# 验证文件完整性(大小约 35KB,可对比)
ls -l /www/server/nginx/lib/lua/resty/mysql.lua
nginx.conf在文件的加入lua_package_path "/www/server/nginx/lib/lua/?.lua;;";扫描
http {
lua_package_path "/www/server/nginx/lib/lua/?.lua;;";
}
检查
resty.mysql 依赖 resty.core 基础模块,确保其存在且完整:
# 检查核心模块目录
ls -l /www/server/nginx/lib/lua/resty/core/
需至少包含 base.lua、ctx.lua、hash.lua 等文件。若缺失,需同步安装 lua-resty-core:
# 下载核心模块
mkdir -p /www/server/nginx/lib/lua/resty/core
wget -O /www/server/nginx/lib/lua/resty/core/base.lua https://raw.githubusercontent.com/openresty/lua-resty-core/master/lib/resty/core/base.lua
wget -O /www/server/nginx/lib/lua/resty/core/ctx.lua https://raw.githubusercontent.com/openresty/lua-resty-core/master/lib/resty/core/ctx.lua
重启 Tengine
/www/server/nginx/sbin/nginx -s reload