如何通过HAProxy将多端口转发至同一后端服务器,避免重复配置
HAProxy多端口转发简化配置方案
当然有更简便的实现方式,只需要通过ACL端口匹配和动态端口变量,就能用一套frontend+backend配置搞定80到89端口的转发需求,不用再写重复的配置段:
frontend front_all_ports bind *:80-89 # 一次性绑定80至89的全部端口 acl req_port dst_port 80-89 # 匹配请求的目标端口范围 use_backend back_dynamic if req_port # 将符合条件的请求转发到统一后端 backend back_dynamic server server1 1.1.1.1:%[dst_port] maxconn 50000 # %[dst_port]是HAProxy内置变量,自动替换为当前请求的目标端口,实现端口一一对应转发
关键逻辑说明:
bind *:80-89:HAProxy支持直接绑定连续端口范围,省去逐个绑定的麻烦%[dst_port]变量:会自动获取当前请求的目标端口(比如用户访问81端口,就替换为81),确保转发到后端对应端口- 整套配置无需重复定义多个frontend和backend,后续要调整端口范围或后端参数,只需要修改一处即可
内容的提问来源于stack exchange,提问作者daisy
相关产品推荐
相关产品推荐

