【问题标题】:Running HAProxy with Lua Scripts使用 Lua 脚本运行 HAProxy
【发布时间】:2019-02-24 09:57:16
【问题描述】:

我正在尝试使用 USE_LUA=1 标志构建 HAProxy-1.9 以启用 lua 支持。这是我正在使用的make 命令:

sudo make TARGET=linux USE_DL=1 USE_CRYPT_H=1 USE_LUA=1 LUA_LIB=/usr/bin/lua5.3 LUA_INC=/usr/include/lua5.3/ LUA_LIB_NAME=lua53

当我执行 make 命令时,我收到以下错误:

  LD      haproxy
 /usr/lib64/gcc/x86_64-suse-linux/8/../../../../x86_64-suse-linux/bin/ld: cannot find -llua53
 collect2: error: ld returned 1 exit status
 make: *** [Makefile:976: haproxy] Error 1

从我收集的信息来看,似乎缺少一个库文件(猜测是套接字文件),或者我提供了错误的目录。我正在使用OpenSuse Tumbleweed

编辑 1

通过将TARGET=linux 更改为TARGET=generic,我能够从源代码生成haproxy。 make 文件停止后,stdout 上没有报告错误。但是,haproxy.service 没有安装。

我之前使用 zypper 安装了 haproxy。我删除它的唯一原因是使用 USE_LUA=1 标志重新安装它,因为我不确定是否可以编辑 haproxy 后编译以更改编译时配置。

重新安装后,它可以工作了。但是,我相信lua-load 存在错误。当我尝试lua-load /usr/share/haproxy/auth-request.lua 时,运行journalctl -xe: error in lua file '/tmp/auth-request.lua': cannot open /tmp/auth-request.lua: Permission denied 时出现以下错误。文件上设置的权限为haproxy:haproxy,与haproxy.cfg 文件中一样。我也试过在haproxy.cfgchown /tmp/auth-request.lua root:root中修改user root group root。错误仍然存​​在。

我可能在某种程度上偏离了最初的问题。我很感激它仍然可以解决这个问题。如果需要更多信息或上下文,可以提供。

编辑 2

最近我尝试为/tmp/auth-request.lua 上的所有用户添加读取和执行权限。 ls -l 输出:

-rwxr-xr-x 1 root root 3957 Feb 25 02:24 /tmp/auth-request.lua

【问题讨论】:

  • 可能你必须先安装lua,然后再安装haproxy
  • @EgorSkriptunoff 我已经安装了; lua -v Lua 5.3.4 Copyright (C) 1994-2017 Lua.org, PUC-Rio
  • 试试LUA_LIB_NAME=lua5.3
  • @EgorSkriptunoff 我对帖子进行了编辑。感谢您的帮助

标签: makefile lua ld haproxy


【解决方案1】:

好的,经过几个小时的艰苦努力,我能够按照帖子中的 EDIT 2 解决权限问题。我将我的 Lua 脚本移动到 haproxy 配置目录,这似乎奏效了。虽然,我不太确定/etc/haproxy 是否是保存 Lua 脚本的好位置,但目前它已经奏效了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 2016-06-19
    • 2015-08-30
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多