国产nginx,tengine,内部已有lua,未安装mysql,安装mysql

发布于:2025-08-31 ⋅ 阅读:(18) ⋅ 点赞:(0)
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


网站公告

今日签到

点亮在社区的每一天
去签到