TCP上基于haproxy的动态主机名(使用SNI)路由

TCP上基于haproxy的动态主机名(使用SNI)路由,tcp,routing,haproxy,sni,Tcp,Routing,Haproxy,Sni,使用haproxy的TCP路由器 用例: 1) 请求(TCP/SSL)到达haproxy 2) haproxy从请求(subdomain.example.com)读取SNI(服务器名称指示)数据,从主机名中提取“subdomain” 3) 现在,该请求必须传递到后端服务器(subdomain.local) 实施 frontend tcp_ssl_test bind 5432 ssl crt /etc/ssl/private/example.com.pem mode tcp

使用haproxy的TCP路由器

用例:
1) 请求(TCP/SSL)到达haproxy
2) haproxy从请求(subdomain.example.com)读取SNI(服务器名称指示)数据,从主机名中提取“subdomain”
3) 现在,该请求必须传递到后端服务器(subdomain.local)

实施

frontend tcp_ssl_test
    bind 5432 ssl crt /etc/ssl/private/example.com.pem  
    mode tcp
    default_backend tcp_ssl_test_backend

backend tcp_ssl_test_backend
    mode tcp
    acl app_a req_ssl_sni -i subdomain1.andromeda.io
    acl app_b req_ssl_sni -i subdomain2.andromeda.io
    use-server bb1 if app_a
    use-server bb2 if app_b
    server bb1 subdomain1.local
    server bb2 subdomain2.local
问题
如果有更多的“子域”,如何动态地实现这一点

能否从sni主机名中提取“子域”部分并将其传递到
服务器
关键字?

例如,下面的代码片段将非常棒:

acl app_a req_ssl_sni -i (?<subdomain>.+)\.andromeda\.io
use-server bb1 if app_a
server bb1 $subdomain.local
acl应用程序a请求ssl\U sni-i(?.+)\.andromeda\.io
如果应用程序为a,则使用服务器bb1
服务器bb1$subdomain.local

HAProxy的哪个版本?在1.6中有许多事情是可能的,而在以前的版本中是不可能的。。。但是服务器不能动态实例化。您必须声明一个服务器来表示每个实际的后端服务器。
HA代理版本1.6.3
。我们正在考虑动态创建服务器。但是,由于这是不可能的,我们可以有一个动态的
使用服务器
行吗?或者任何其他动态替代方案来实现这一点?