我想在三个后端负载平衡请求到同一个端口。 我有大约20个端口转发,所以我需要一个方法来使其dynamic。 这是为了平衡我们的prod,pre-prod,qa,dev,多个域的unit testing服务器。 所以,是的,我可以使用20个后端,20个acl和20个use_backends。 但是,然后忘记它。 太麻烦了。
所以,我想用一个variables来表示“被请求的端口”。 我尝试%[dst_port],因为这似乎在其他一些情况下工作。
我从Willy T的某个地方读到一个答案,如果一个人离开了港口,那么它只是转发到同一个港口。
但它仍然需要服务端口或检查端口,我不知道提前,除非我绑定到20个不同的前端。
错误:服务器X既没有服务端口也没有检查端口,也没有tcp_check规则“连接”与端口信息。 检查已被禁用。
例如。
listen load-balance bind :28080 bind :42080 bind :48080 bind :58080 bind :38080 mode http balance roundrobin option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost server X 10.20.30.1 check %[dst_port] server Y 10.20.30.2 check %[dst_port] server Z 10.20.30.3 check %[dst_port]
你看,它需要一个variables。 这可能吗?
(我的问题更加复杂,因为从技术上讲,我需要一个从目标端口到检查端口的映射,理想情况下,但是如果我能做到这一点,至less可以做到这一点。
你需要configuration它
server X 10.20.30.1 check port 80 server Y 10.20.30.2 check port 80 server Z 10.20.30.3 check port 80
您只能设置一个端口来检查运行状况,或者使用“external-check命令”检查您的服务器是否使用自己的脚本。