修改HAProxy Lua库路径

2023-12-19

我正在尝试从 HAProxy 加载 Lua 脚本。在 Lua 脚本中,以下行导致错误:

local http = require("socket.http")

最初我收集自journalctl -xe输出表明该库未安装。我安装它使用luarocks install luasocket。这并没有解决问题。新的错误是module "socket.http" not found。继此评论之后post https://stackoverflow.com/questions/47124011/how-to-load-3rd-party-lua-libs-installed-via-luarocks-into-haproxy我意识到我必须更改 Lua 库路径的设置才能解决此问题。

现在,我想了解以下内容:

  1. 我是否已从源代码安装HAProxy+Lua并修改安装前的库路径?
  2. 如果不需要从源代码构建,那么我相信我必须使用以下命令更改路径syslog正如上面链接的帖子的评论所建议的。如果是这种情况,我该怎么做以及我需要更改/添加哪些设置syslog.conf?
  3. 还有其他我忽略的解决方案比上述任何解决方案更容易吗?

提前感谢您的帮助。

EDIT 1

我已经修改了两个LUA_PATH and LUA_CPATH如下:

LUA_PATH=/usr/bin/lua;/usr/bin/lua5.3;/usr/share/lua/5.3/ltn12.lua;/usr/share/lua/5.3/mime.lua;/usr/share/lua/5.3/socket.lua;/usr/share/lua/5.3/ssl.lua;/usr/share/lua/5.3/posix/_argcheck.lua;/usr/share/lua/5.3/posix/compat.lua;/usr/share/lua/5.3/posix/deprecated.lua;/usr/share/lua/5.3/posix/init.lua;/usr/share/lua/5.3/posix/sys.lua;/usr/share/lua/5.3/posix/util.lua;/usr/share/lua/5.3/posix/version.lua;/usr/share/lua/5.3/socket/ftp.lua;/usr/share/lua/5.3/socket/headers.lua;/usr/share/lua/5.3/socket/http.lua;/usr/share/lua/5.3/socket/smtp.lua;/usr/share/lua/5.3/socket/tp.lua;/usr/share/lua/5.3/socket/url.lua;/usr/share/lua/5.3/term/colors.lua;/usr/share/lua/5.3/term/cursor.lua;/usr/share/lua/5.3/term/init.lua;/usr/share/lua/5.3/ssl/https.lua;/usr/share/lua/5.3/luarocks/add.lua;/usr/share/lua/5.3/luarocks/admin_remove.lua;/usr/share/lua/5.3/luarocks/build.lua;/usr/share/lua/5.3/luarocks/cache.lua;/usr/share/lua/5.3/luarocks/cfg.lua;/usr/share/lua/5.3/luarocks/command_line.lua;/usr/share/lua/5.3/luarocks/config_cmd.lua;/usr/share/lua/5.3/luarocks/deps.lua;/usr/share/lua/5.3/luarocks/dir.lua;/usr/share/lua/5.3/luarocks/doc.lua;/usr/share/lua/5.3/luarocks/download.lua;/usr/share/lua/5.3/luarocks/fetch.lua;/usr/share/lua/5.3/luarocks/fs.lua;/usr/share/lua/5.3/luarocks/help.lua;/usr/share/lua/5.3/luarocks/index.lua;/usr/share/lua/5.3/luarocks/install.lua;/usr/share/lua/5.3/luarocks/lint.lua;/usr/share/lua/5.3/luarocks/list.lua;/usr/share/lua/5.3/luarocks/loader.lua;/usr/share/lua/5.3/luarocks/make.lua;/usr/share/lua/5.3/luarocks/make_manifest.lua;/usr/share/lua/5.3/luarocks/manif_core.lua;/usr/share/lua/5.3/luarocks/manif.lua;/usr/share/lua/5.3/luarocks/new_version.lua;/usr/share/lua/5.3/luarocks/pack.lua;/usr/share/lua/5.3/luarocks/path_cmd.lua;/usr/share/lua/5.3/luarocks/path.lua;/usr/share/lua/5.3/luarocks/persist.lua;/usr/share/lua/5.3/luarocks/purge.lua;/usr/share/lua/5.3/luarocks/refresh_cache.lua;/usr/share/lua/5.3/luarocks/remove.lua;/usr/share/lua/5.3/luarocks/repos.lua;/usr/share/lua/5.3/luarocks/require.lua;/usr/share/lua/5.3/luarocks/search.lua;/usr/share/lua/5.3/luarocks/show.lua;/usr/share/lua/5.3/luarocks/site_config.lua;/usr/share/lua/5.3/luarocks/type_check.lua;/usr/share/lua/5.3/luarocks/unpack.lua;/usr/share/lua/5.3/luarocks/upload.lua;/usr/share/lua/5.3/luarocks/util.lua;/usr/share/lua/5.3/luarocks/validate.lua;/usr/share/lua/5.3/luarocks/write_rockspec.lua;/usr/share/lua/5.3/luarocks/build/builtin.lua;/usr/share/lua/5.3/luarocks/build/cmake.lua;/usr/share/lua/5.3/luarocks/build/command.lua;/usr/share/lua/5.3/luarocks/build/make.lua;/usr/share/lua/5.3/luarocks/fs/lua.lua;/usr/share/lua/5.3/luarocks/fs/tools.lua;/usr/share/lua/5.3/luarocks/fs/unix.lua;/usr/share/lua/5.3/luarocks/fs/win32.lua;/usr/share/lua/5.3/luarocks/fetch/cvs.lua;/usr/share/lua/5.3/luarocks/fetch/git_file.lua;/usr/share/lua/5.3/luarocks/fetch/git_http.lua;/usr/share/lua/5.3/luarocks/fetch/git_https.lua;/usr/share/lua/5.3/luarocks/fetch/git.lua;/usr/share/lua/5.3/luarocks/fetch/git_ssh.lua;/usr/share/lua/5.3/luarocks/fetch/hg_http.lua;/usr/share/lua/5.3/luarocks/fetch/hg_https.lua;/usr/share/lua/5.3/luarocks/fetch/hg.lua;/usr/share/lua/5.3/luarocks/fetch/hg_ssh.lua;/usr/share/lua/5.3/luarocks/fetch/sscm.lua;/usr/share/lua/5.3/luarocks/fetch/svn.lua;/usr/share/lua/5.3/luarocks/tools/patch.lua;/usr/share/lua/5.3/luarocks/tools/tar.lua;/usr/share/lua/5.3/luarocks/tools/zip.lua;/usr/share/lua/5.3/luarocks/upload/api.lua;/usr/share/lua/5.3/luarocks/upload/multipart.lua

LUA_CPATH=/usr/lib64/lua/5.3/posix/ctype.so;/usr/lib64/lua/5.3/posix/dirent.so;/usr/lib64/lua/5.3/posix/errno.so;/usr/lib64/lua/5.3/posix/fcntl.so;/usr/lib64/lua/5.3/posix/fnmatch.so;/usr/lib64/lua/5.3/posix/glob.so;/usr/lib64/lua/5.3/posix/grp.so;/usr/lib64/lua/5.3/posix/libgen.so;/usr/lib64/lua/5.3/posix/poll.so;/usr/lib64/lua/5.3/posix/pwd.so;/usr/lib64/lua/5.3/posix/sched.so;/usr/lib64/lua/5.3/posix/signal.so;/usr/lib64/lua/5.3/posix/stdio.so;/usr/lib64/lua/5.3/posix/stdlib.so;/usr/lib64/lua/5.3/posix/syslog.so;/usr/lib64/lua/5.3/posix/termio.so;/usr/lib64/lua/5.3/posix/time.so;/usr/lib64/lua/5.3/posix/unistd.so;/usr/lib64/lua/5.3/posix/utime.so;/usr/lib64/lua/5.3/mime/core.so;/usr/lib64/lua/5.3/socket/core.so;/usr/lib64/lua/5.3/socket/serial.so;/usr/lib64/lua/5.3/socket/unix.so;/usr/lib64/lua/5.3/term/core.so;/usr/lib64/lua/5.3/ssl.so;/usr/lib64/lua/5.3/zlib.so

我仍然遇到与之前报告的相同的错误。

EDIT 2

找到了这个post https://www.lua.org/pil/8.1.html对Lua require 函数相当有帮助。经过讨论,我尝试了以下方法:

package.path="/usr/share/lua/5.3/?/?.lua" package.cpath="/usr/lib64/lua/5.3/?/?.so"

我在导致错误的 lua 脚本顶部添加了这些行。我还修改了环境变量,LUA_PATH and LUA_CPATH具有相同的值。错误仍然存​​在。

现阶段我没有所有可能的选择,如果有人能够阐明这个问题,我将很高兴。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

修改HAProxy Lua库路径 的相关文章

  • 寻找 Lua 4.1 alpha

    我正在帮助为一款相当老的游戏 孤岛惊魂 开发多人模式 我想编译lua代码 但游戏使用版本4 1 alpha 我在任何地方都找不到 lua 4 1 alpha tar gz http www lua org work old lua 4 1
  • 从lua中的函数返回多个值

    我正在尝试以下 lua 代码 function test return 1 2 end function test2 return test end function test3 return test 3 end print test p
  • Lua:C++模块无法互相引用,未定义的符号

    我创建了两个模块 共享对象 CPU 和 SaveState 作为模拟器的一部分 两者都独立编译成 so 单独文件 并在运行时由 Lua 脚本使用 require 加载 IE SaveState require SaveState CPU r
  • 错误 main.lua:23:尝试索引 upvalue 'Menu' (布尔值)

    我正在尝试用 lua 和 love2d 制作一个主菜单 这是我第一次这样做 遗憾的是没有关于此事的教程 所以我自己尝试了一下 我一直遇到这个错误 我不知道如何解决它 请帮助 完整错误消息 错误main lua 23 尝试索引upvalue
  • 如何加载目录中的所有文件?

    正如标题所说 如何加载目录中的每个文件 我对c 和lua都感兴趣 编辑 对于 Windows 我很高兴能得到一些真正的工作代码 尤其是 lua 我可以用 boost filesystem for c 来做 对于 Lua 你需要模块Lua文件
  • 如何使用循环将字符串连接成一个?

    有人可以帮我解决字符串连接问题吗 我从寄存器读取数据 它的函数 utf regAddr length 我得到带有十进制数字的表格 然后将其转换为十六进制并循环字符串 我需要将这些字符串连接成一个 Lua中没有像 这样的操作符 functio
  • 在 lua 中使用相等运算符比较数字有多安全?

    在我的引擎中 我有一个用于脚本编写的 Lua VM 在脚本中 我写了这样的内容 stage stage 1 if stage 5 then end and objnum tonumber 5 if stage objnum 根据 Lua 来
  • LuaJit FFI 从 C 函数返回字符串到 Lua?

    假设我有这个 C 函数 declspec dllexport const char GetStr static char buff 32 Fill the buffer with some string here return buff 这
  • Lua 和序列化闭包

    我正在尝试序列化和反序列化 Lua 闭包 我的基本理解是下面的工厂应该生成闭包 并且Lua在函数和闭包之间没有太多区别 即没有类型 闭包 gt function ffactory x return function return x end
  • 十六进制常数 = 格式错误的数字?

    我有一个 Lua 脚本 我试图在其中使用十六进制数字 0x 如果我使用官方 Windows 二进制文件在控制台中运行此脚本 它可以正常工作 但是如果我在我的应用程序中运行它 简单的 dofile 我得到 malformed number n
  • 无法将 HAProxy 实现为 HTTPS 的转发代理

    我正在尝试使用 HAProxy 作为转发代理 它适用于 HTTP 但不适用于 HTTPS 下面是我的 HTTP HAProxy 配置 listen forward http proxy bind 80 http request do res
  • 在 Corona sdk 上保存高分?

    我想保存游戏中创建的高分 并且当玩家点击高分按钮时可以在主菜单中看到 有人可以帮助我吗 您可以使用SQLITE https docs coronalabs com api library sqlite3 index html将高分保存到数据
  • 检查lua中是否存在目录?

    如何检查 lua 中是否存在目录 如果可能的话最好不使用 LuaFileSystem 模块 尝试做类似以下 python 行的事情 os path isdir path 这是一种在 Unix 和 Windows 上都适用的方式 无需任何外部
  • 如何在aerospike中获取ttl为-1的记录集?

    我在aerospike中有很多记录 我想获取ttl为 1的记录 请提供解决方案 只是为了澄清 设置TTL 为 1 https github com aerospike aerospike client go blob master docs
  • Lua-迭代嵌套表

    我已经学习 Lua 几个星期了 这一次又一次成为我的症结所在 我尝试阅读有关该主题的帖子和书籍 我使用 Lua 查询软件监控系统 Nimsoft 我的数据以表格形式返回给我 我不会发布整个输出 但这里有一个我认为可以描述结构的片段 表参考是
  • 如何使用 haproxy 负载均衡器 Kafka Bootstrap?

    我有一个 kafka 集群 由 3 台在 AWS 上运行的机器组成 卡夫卡1到卡夫卡3 我正在使用新型卡夫卡消费者 gt 0 8 我知道kafka客户端连接到其中一台kafka服务器 获取服务器元数据 然后直接连接到代理 我想确保在代理发生
  • 为什么 LuaJIT 这么好?

    编辑 不幸的是 LuaJIT 已从下面链接的比较中删除 This 比较 http shootout alioth debian org u64 which programming languages are fastest php编程语言的
  • Lua 从 5.1 更新 - LUA_GLOBALSINDEX 问题

    我最近将旧的 Lua 5 1 项目更新到了该库的最新版本 但遇到了问题LUA GLOBALSINDEX 它变得不确定 我只用过它lua getfield函数 像这样 void luastartgame void if startgamefu
  • 如何在我的 Lua 脚本中添加“睡眠”或“等待”?

    我正在尝试通过更改一天中的时间来为游戏制作一个简单的脚本 但我想快速完成 这就是我要说的 function disco hour minute setTime 1 0 SLEEP setTime 2 0 SLEEP setTime 3 0
  • 在Luasocket中,在什么条件下,即使在select告诉它可以安全读取之后,accept调用也可以阻塞?

    卢阿索基特select http w3 impa br diego software luasocket socket html select函数应该告诉何时可以在不阻塞的情况下读取套接字 它显然也可以用来告诉服务器套接字何时准备好接受新连

随机推荐

  • 禁止在构建时创建 *.vshost.exe 和其他文件

    我找到了有关 Microsoft Visual Studio 额外 文件的以下信息 vshost exe 文件的用途是什么 https stackoverflow com questions 774187 what is the purpo
  • C# MongoDb 序列化 Dictionary

    我的数据库中有一个记录事件的集合 每种类型的事件都有一组不同的数据 我用以下类定义了它 CollectionName LogEvent public class LogEvent public LogEvent string eventTy
  • 协议扩展初始化程序强制调用 self.init

    我刚刚阅读了有关协议初始值设定项要求的 Apple Swift 4 文档 并在协议扩展中提供了默认实现 import UIKit protocol Protocol init extension Protocol init print SD
  • JPGraph - 条形图不显示值

    我正在使用最新版本的 JPGraph 并且尝试更改 graph api 文件以在组条形图上显示值 下面是一段代码 用于显示我的更改 对于那些查看 API 的人来说 这是在 graph group 函数中 tot new BarPlot ar
  • 列出 jar 文件中的类

    如何动态加载 jar 文件并列出其中的类 以下是列出 jar 中的类的代码 import java io IOException import java util Enumeration import java util jar JarEn
  • 用于版本控制和缩小 javascript 的 Maven 插件

    单页 Javascript 应用程序 我构建了一个复杂的 ajax 驱动的单页 Web 应用程序 它使用提供 JSON 服务的 RESTful 后端 Web 服务 javascript 被分成许多不同的文件 每个文件代表某种功能或组件 虽然
  • ImportError:无法导入 DAG 气流

    我有简单的代码 我正在尝试从气流导入 DAG from airflow import DAG from airflow operators import BashOperator S3KeySensor from datetime impo
  • 为什么我可以在 GHCi 中加载模块,而 Atom 却找不到它?

    我在 Windows 10 上使用 Haskell 以及 Stack 和 Atom 有时 我喜欢编写一个独立的程序 hs文件来玩各种东西 当我这样做时 我更喜欢使用 GHCi 与其进行交互 通常 我从 Git Bash 启动它 stack
  • 一个好的单元测试应该具有什么属性?

    单元测试应该 产生确定性结果 独立 be valid 测试还应该具备哪些其他特征 啊 我最喜欢的科目 从哪里开始 根据 Gerard Meszaros 的 xUnit 测试模式 有关单元测试的书 测试应该降低风险 而不是 介绍一下 测试应该
  • Android Studio Manifest 包名合并错误

    What went wrong Execution failed for task app processDebugManifest 清单合并失败 AndroidManifest xml 3 5 40 位置处的包名称 应至少包含一个 点 字
  • 绑定到祖先的 Datacontext

    最好先向您展示我的代码 然后再提出问题
  • 将 NOT NULL 约束添加到列

    我正在使用 PHPMyAdmin 并尝试将 NOT NULL 约束添加到表的列中 PHPMyAdmin 接受我的以下查询 ALTER TABLE wall MODIFY token message varchar 40 NOT NULL 但
  • 从命令行调试 iPhone 应用程序

    我可以从 XCode 执行此操作 但我希望能够从命令行启动 iPhone 应用程序 在设备上 是否可以 为什么 因为我想捕获一些半自动测试的输出 我猜我需要使用 NSLog 输出的调试版本 但我也有兴趣了解将 NSLog stdio 数据返
  • Facebook 停止显示文章:作者

    看起来 Facebook 在过去几天改变了一些东西 我注意到文章 作者信息不再显示 文章 发布者仍然有效 https developers facebook com docs reference opengraph object type
  • 具有非可选属性的类符合具有可选属性的协议

    如果我有一个具有可选属性的协议 以及一个需要符合协议的类 该协议已经具有相同的属性 但作为非可选属性 我如何使该类符合协议 protocol MyProtocol var a String get set class MyClass var
  • 如何让 Meteor.Call 返回模板值?

    我试过了了解这篇关于这个概念的文章 https stackoverflow com questions 10379445 how to get the result of a meteor call function in a templa
  • Nifi 中并行和顺序处理的等待通知

    我有一个要求 我需要并行执行 4 个作业 并且当在所有 4 个处理器中并行完成相同的项目作业时 然后触发下一个处理器 为此我使用了等待通知 流程就像 4个并行作业 gt notify 释放信号标识符 itemid 信号计数器名称 proce
  • Haskell 程序中比其他语言更容易出现哪些错误?

    备受推崇的功能之一是 如果一个程序可以编译 那么它很可能大部分都是正确的 比用不太复杂或严格的类型系统的语言编写的程序更是如此 也就是说 Haskell 是一个将运行时错误转换为编译器错误的系统 我想知道 用 Haskell 编程是否会出现
  • Flutter - 有状态小部件在切换选项卡时不会保存计数器状态

    我正在学习 flutter 正在使用 tabBars 但在保存状态时遇到问题 我在下面列出了我的问题的一个小工作示例 基本上 有一个按钮和一个状态计数器 当我单击按钮时 我看到文本字段正确更新 但是 当我切换到不同的选项卡并返回时 文本字段
  • 修改HAProxy Lua库路径

    我正在尝试从 HAProxy 加载 Lua 脚本 在 Lua 脚本中 以下行导致错误 local http require socket http 最初我收集自journalctl xe输出表明该库未安装 我安装它使用luarocks in