You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Nginx的Lua中实现字符串base64编码出现报错该如何解决?

问题排查与修复

核心错误点

  • 语法混淆:set_by_lua 指令后单引号包裹的内容为纯Lua代码,错误地在Lua代码块中使用了Nginx原生配置的set $变量名语法,Lua语法不识别set指令和$变量前缀,这就是报错提示'=' expected near '$'的根因。
  • 字符串拼接错误:Lua语言中字符串拼接运算符为..,不是+,使用+会被识别为数值加法运算,后续运行也会抛出类型错误。

修正后代码

set_by_lua $base64_credential '
    local es_username = os.getenv("ES_USERNAME")
    local es_pwd = os.getenv("ES_PWD")
    return ngx.encode_base64(es_username .. ":" .. es_pwd)
';

代码说明

  • Lua中定义局部变量使用local关键字直接赋值,无需额外的set指令,也不需要给变量添加$前缀
  • 两个变量拼接使用..运算符完成字符串拼接
  • 环境变量读取逻辑保持不变,最终返回base64编码结果赋值给Nginx变量$base64_credential

内容的提问来源于stack exchange,提问作者Joey Yi Zhao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 14:45:03