haproxy域路由

我试图设置haproxy路由到后端取决于在http请求中使用的子域。 例如,我有一个运行在端口8000上的常规Web服务器和一个应用服务器,该服务器在同一个IP地址上等待8001端口上运行的websocket连接。 我现在想要的是,如果用户点击app.mydomain.com:80他被redirect到8001端口,如果他点击www.mydomain.com(或任何其他子域),他被redirect到端口8000上的networking服务器。

我想出了一个简单的configuration,我认为应该做到这一点(它基于这个问题松散):

frontend all 0.0.0.0:80 timeout client 86400000 acl aclMS1 hdr_dom(host) -i app use_backend beMS1 if aclMS1 default_backend beWEB backend beMS1 timeout server 86400000 server srvMS1 localhost:8001 maxconn 200 check backend beWEB server webserver localhost:8000 maxconn 200 check 

但是,这似乎是行不通的。 我总是在我的web服务器端口8000端口。我做错了什么?

我想出了如何让它工作。 我错过了模式http选项。 我的configuration现在看起来像这样,就像一个魅力:

 defaults mode http timeout server 50000ms timeout server 50000ms timeout server 50000ms frontend all 0.0.0.0:80 timeout client 86400000 acl aclMS1 hdr_dom(host) -i app use_backend beMS1 if aclMS1 default_backend beWEB backend beMS1 timeout server 86400000 server srvMS1 localhost:8001 maxconn 200 check backend beWEB server webserver localhost:8000 maxconn 200 check