Web-Server
代理域路由
我正在嘗試設置 haproxy 以根據 http 請求中使用的子域路由到後端。例如,我有一個在埠 8000 上執行的正常 Web 伺服器和一個等待在同一 IP 地址上的埠 8001 上執行的 websocket 連接的應用程序伺服器。我現在希望,如果使用者點擊 app.mydomain.com:80,他被重定向到埠 8001,如果他點擊 www.mydomain.com(或任何其他子域),他被重定向到埠 8000 上的網路伺服器。
我想出了一個我認為應該完成的簡單配置(它鬆散地基於這個問題):
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
但是,這似乎不起作用。我總是在埠 8000 上訪問我的網路伺服器。我做錯了什麼?
我想出瞭如何讓它工作。我錯過了模式 http 選項。我的配置現在看起來像這樣,就像一個魅力:
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