Haproxy 可以加载 socket.http.module,但是无法找到 'socket.http'

我已经安装了 luasocket

Lua 5.3.1 版权所有 (C) 1994-2015 Lua.org,PUC-Rio
> require("socket.http")
table: 0x9b2d80
>

debian:/usr/local/share/lua/5.3/socket# ll
total 56
-rw-r--r-- 1 root root 10640 Dec 22 17:47 ftp.lua
-rw-r--r-- 1 root root  3698 Dec 22 17:47 headers.lua
-rw-r--r-- 1 root root 13216 Dec 22 17:47 http.lua
-rw-r--r-- 1 root root  8074 Dec 22 17:47 smtp.lua
-rw-r--r-- 1 root root  3766 Dec 22 17:47 tp.lua
-rw-r--r-- 1 root root 11105 Dec 22 17:47 url.lua

在 Haproxy Lua 代码中:

local http = require("socket.http")

当我请求网页时,

运行时错误: /etc/haproxy/waf/lib.lua:7: module 'socket.http' not found:#012#011no field package.preload['socket.http']#012#011no file '/usr/local/share/lua/5.3/socket/http.lua'#012#011no file '/usr/local/share/lua/5.3/socket/http/init.lua'#012#011no file '/usr/local/lib/lua/5.3/socket/http.lua'#012#011no file '/usr/local/lib/lua/5.3/socket/http/init.lua'#012#011no file '/usr/share/lua/5.3/socket/http.lua'#012#011no file '/usr/share/lua/5.3/socket/http/init.lua'#012#011no file './socket/http.lua'#012#011no file './socket/http/init.lua'#012#011no file '/etc/haproxy/waf/socket/http.lua'#012#011no file '/etc/haproxy/waf/socket/http.lua'#012#011no file '/usr/local/lib/lua/5.3/socket/http.so'#012#011no file '/usr/lib/x86_64-linux-gnu/lua/5.3/socket/http.so'#012#011no file '/usr/lib/lua/5.3/socket/http.so'#012#011no file '/usr/local/lib/lua/5.3/loadall.so'#012#011no file './socket/http.so'#012#011no file '/usr/local/lib/lua/5.3/socket.so'#012#011no file '/usr/lib/x86_64-linux-gnu/lua/5.3/socket.so'#012#011no file '/usr/lib/lua/5.3/socket.so'#012#011no file '/usr/lo

谁能帮我,谢谢。

点赞
用户2858170
用户2858170

你的电脑无法找到所需的文件。

https://www.lua.org/pil/8.1.html

为了确定其路径,require 首先查找全局变量 LUA_PATH。如果 LUA_PATH 的值为字符串,则该字符串为路径。否则,require 检查环境变量 LUA_PATH。最后,如果两个检查都失败了,require 会使用一个固定的路径(通常为“?;?.lua”,不过你可以在编译 Lua 时轻松更改)。

LUA_PATH 的内容将被复制到 package.path 中。因此,在运行 Lua 之前,要么将该模块的位置添加到系统变量中,要么将其添加到 require 之前的 package.path 中。

2017-01-19 14:34:27