HAProxy Lua如何更改服务器端口?

HAProxy Lua如何更改服务器端口?,lua,haproxy,Lua,Haproxy,Server.set\u addr(sv,addr) 我不明白这个方法的输入是什么。 似乎Server.get\u addr(sv)返回ip:port——因此您还需要传递ip:port,但不行。这不起作用 文件内容如下: 有关字符串格式的更多信息,请参阅控制套接字的文档。 我看到您需要传输ip端口:port(示例:127.0.0.1端口80)。但这也不行 唯一有效的方法是仅通过ip(例如:127.0.0.1) 问题是如何更改端口 代码示例:(如果不工作-日志中没有任何条目) ——工作 --日志条

Server.set\u addr(sv,addr)

我不明白这个方法的输入是什么。 似乎
Server.get\u addr(sv)
返回
ip:port
——因此您还需要传递
ip:port
,但不行。这不起作用

文件内容如下:
有关字符串格式的更多信息,请参阅控制套接字的文档。

我看到您需要传输
ip端口:port
(示例:
127.0.0.1端口80
)。但这也不行

唯一有效的方法是仅通过ip(例如:
127.0.0.1

问题是如何更改端口

代码示例:(如果不工作-日志中没有任何条目)

——工作
--日志条目:通过Lua脚本将其IP从1.1.1.1更改为2.2.2.2。
本地newAdr=backendServer.ip
服务器:设置地址(newAdr)
--不行
本地newAdr=backendServer.port
服务器:设置地址(newAdr)
--不行
本地newAdr=backendServer.ip。。":" .. 后端服务器端口
服务器:设置地址(newAdr)
--不行
本地newAdr=backendServer.ip。。" " .. 后端服务器端口
服务器:设置地址(newAdr)
--不行
本地newAdr=backendServer.ip。。“港口”。。后端服务器端口
服务器:设置地址(newAdr)

更新:自HAProxy 2.2dev7起,此功能现已合并:
set\u addr
采用附加可选参数来指定新端口


目前不可能通过Lua实现这一点。查看HAProxy的源代码可以发现调用,调用,调用,只更新地址而不更新端口。将此与管理套接字进行对比,后者调用,后者也会更新端口

然而,有两条好消息:

  • 由于管理套接字可以做到这一点,因此可以将其用作解决方法
  • 修改HAProxy的Lua接口以支持更新端口将非常简单,因为所有逻辑都已经存在。我给他们发了邮件

  • 谢谢你的回答。这对我来说不是必须的,没有它你就必须为服务器保留一个端口。关于补丁-我对haproxy创建他的知识非常有限:)@KopeMorta如果haproxy开发者同意,我计划自己编写一个补丁。如果它落地,我会在这里发表评论。@KopeMorta它被合并了!太棒了!:)现在我可以通过手动编译源代码使用它了吗?@KopeMorta是的,只需应用于您正在运行和编译的任何版本。