使用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