HAProxy Lua脚本在tcp模式下不打印/记录主机或路径

问题在于当使用tcp模式时,Lua脚本不记录/打印主机和路径,仅记录/打印IP。如果我将模式更改为http,则会打印/输出所有内容,但我需要在tcp模式下。有没有人可以帮我解决这个问题?

这是我的HAProxy配置文件如何看起来:

frontend RTMP
bind 0.0.0.0:1935
mode tcp
use_backend %[lua.choose_backend("d")]

backend a
    balance roundrobin
    mode tcp
    server origin_1 192.168.1.19:1935 check fall 3 rise 2

backend b
    balance roundrobin
    mode tcp
    server origin_1 192.168.1.20:1935 check fall 3 rise 2

这是我的Lua脚本:

function my_hash(txn, salt)

local str = ""
str = "HOST: " .. txn.sf:req_fhdr("host")
str = str .. " PATH: "
str = str .. txn.sf:path()
str = str .. " SRC: "
str = str .. txn.sf:src()

core.log(core.info, str)
   return 'a'
end

core.register_fetches("choose_backend", my_hash)

我只想获取请求的URI和路径...这么简单的事情

点赞
用户19680923
用户19680923

我有一个类似的问题。在我的情况下,通过将前端替换为 listen 来解决了这个问题,并添加了 "option transparent"

listen RTMP
  option transparent
  bind 0.0.0.0:1935
  mode tcp
  use_backend %[lua.choose_backend("d")]
2022-08-05 10:09:22