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

时间:2016-04-21 08:29:48

标签: tcp routing haproxy sni

使用haproxy的TCP路由器。

用例:
1)请求(TCP / SSL)来haproxy
2)haproxy从请求(subdomain.example.com)读取SNI(服务器名称指示)数据,提取"子域"来自主机名
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主机名中提取的,并传递给server关键字?

例如,类似下面的代码段会很棒:

acl app_a req_ssl_sni -i (?<subdomain>.+)\.andromeda\.io
use-server bb1 if app_a
server bb1 $subdomain.local

0 个答案:

没有答案