Nginx整合Lua脚本

Nginx-Lua

Nginx整合Lua脚本

Lua环境搭建

下载地址

linux环境下

复制代码
yum install lua

安装后验证

复制代码
lua -v

Lua脚本执行

复制代码
lua xxx.lua

Nginx整合Lua

nginx需要添加lua模块

嵌入内容

示例如下

复制代码
修改nginx.conf如下
location /lua {
    default_type 'text/plain';
    content_by_lua 'ngx.say("hello,lua")';
}

嵌入Lua脚本

示例如下

复制代码
1、在nginx目录下创建脚本目录
2、放入脚本文件
3、修改nginx.conf如下
    location /lua {
        #lua_code_cache off;
        content_by_lua_file lua/hello-nginx.lua;
    }
4、访问/lua,页面展示脚本输出内容

调试Lua脚本

复制代码
1、nginx.conf放开注释lua_code_cache off,即关闭lua脚本缓存,修改脚本内容不需重启nginx实现热更新,但会影响性能。
2、使用ZeroBrane Studio(https://studio.zerobrane.com/)远程或本地模拟调试

查看Lua报错日志

复制代码
在nginx中使用lua报错时,页面提示500 Internal Server Error。查看lua报错信息需修改nginx.conf
vim /usr/local/nginx/conf/nginx.conf

日志级别改为debug
error_log /home/wwwlogs/nginx_error.log debug;
在nginx_error.log里可以看到lua报错信息

调试数据

复制代码
nginx+lua有时不方便直接在显示页面里呈现内容,特别是在线上,可以采用输出头信息来达到调试数据的目的,可以使用ngx.header来设置头信息输出。例如:
ngx.header["xxx"] = "xxx"

Nginx Lua Api

nginx提供api给lua调用,参考

复制代码
除了content_by_lua_file等指令外,还能使用lua脚本连接redis、mysql等

脚本demo参考

nginx-lua-demo

相关推荐
wanhengidc21 分钟前
服务器租用有何优点
运维·服务器·安全·web安全
ZGi.ai41 分钟前
人工审查节点:让自动化工作流多一步人工把关
运维·人工智能·自动化·人机协同·智能体工作流·人工审查
艾莉丝努力练剑1 小时前
【Linux:文件】Ext系列文件系统进阶
linux·运维·服务器·c++·文件系统·文件io·ext
海市公约1 小时前
Linux核心基础命令与权限管理实战指南
linux·运维·服务器·vim·权限管理·系统监控·命令行
wkd_0071 小时前
Ubuntu 22.04 Samba 连接故障排查记:从“用户名或密码错误”到 NTLM 版本不兼容
linux·运维·ubuntu
企服AI产品测评局2 小时前
Agent适配信创环境实测:企业级自动化如何实现国产操作系统与数据库全兼容?
运维·数据库·人工智能·ai·chatgpt·自动化
mixboot2 小时前
Linux 进程工作目录查看利器:pwdx 命令详解
linux·运维·服务器
盖小雅3 小时前
自动化排班如何破解劳动法合规难题:从规则冲突到可追溯的排班表
大数据·运维·机器学习·自动化
NiceCloud喜云3 小时前
Claude Code Routines 实战:三种触发器跑通云端自动化编码
android·运维·数据库·人工智能·自动化·json·飞书
zhz52145 小时前
服务器等保加固实施报告
运维·服务器·信创·国密·等保