HY, 我正在尝试使用基于TCP内容的HAproxy重定向流量。
使用Lua,我可以注册检查内容的服务,如下所示:
core.register_service("chooseserver", "tcp", function(AppletTCP)
function string.checkit(str)
--mylogichere
return string.char('server1')
end
tcp_line = AppletTCP:getline()
server = tcp_line:checkit()
if server == 'server1' then
-- HERE
AppletTCP:send(tcp_line)
else
AppletTCP:send(tcp_line)
end
end)
在HAproxy配置中,您可以添加
listen proxy
bind 127.0.0.1:10001
tcp-request content use-service lua.chooseserver
那将执行服务(我可以记录信息),但AppletTCP:send无法正常工作(没有错误)将Package发送到后端定义,我无法将TCP包发送到我选择的服务器
不确定我是否应该使用register_action代替此任务,但我无法使其工作
我需要Lua,因为我需要读取TCP包的内容并根据其内容将其发送到另一台服务器。我需要能够拆分解码和编码字符串,迭代数组和类似的基础操作符。如果你知道其他方式也很高兴知道。