如何使用HAProxy根據主機名稱分流流量?

如何使用HAProxy根據主機名稱分流流量?

我透過 HAProxy 設定了一堆監聽各種其他連接埠的應用程式伺服器,並取得了一些初步的成功。

我現在有另一個網頁伺服器在一個連接埠上偵聽,我想對我的配置進行哪些更改以按主機名稱傳輸流量。

以下是當前設置,假設:

  • 我的 apache 網路伺服器運行在 examplecom:8001
  • 我的一堆應用程式伺服器 0.0.0.0:8081、0.0.0.0:8082、0.0.0.0:8083
global
  log 127.0.0.1 local0
  log 127.0.0.1 local1 notice
  maxconn 4096
  debug
  #quiet
  #user haproxy
  #group haproxy

defaults
  log global
  mode  http
  option  httplog
  option  dontlognull
  retries 3
  redispatch
  maxconn 2000
  contimeout  5000
  clitimeout  50000
  srvtimeout  50000

listen appservers 0.0.0.0:80
  mode http
  balance roundrobin
  option httpclose
  option forwardfor
  #option httpchk HEAD /check.txt HTTP/1.0
  server  inst1 0.0.0.0:8081 cookie server01 check inter 2000 fall  3
  server  inst2 0.0.0.0:8082 cookie server02 check inter 2000 fall  3
  server  inst3 0.0.0.0:8083 cookie server01 check inter 2000 fall  3
  server  inst4 0.0.0.0:8084 cookie server02 check inter 2000 fall  3
  capture cookie vgnvisitor= len 32

(歡迎對 ^ 設定有任何其他評論。)

現在我想繼續上面的操作,但另外以防萬一 - 如果主機名稱是 myspecialtopleveldomain<dot>com,那麼希望將流量流向 example<dot>com:8001

〜B

答案1

這是一個例子:

frontend http
        bind 0.0.0.0:80
        default_backend www
        # NAT static host names and static paths in other hostnames to a different backend
        acl host_static hdr_beg(host) -i static.
        acl url_static  path_beg         /static
        use_backend static if host_static or url_static

backend www
        balance roundrobin
        server  qa1 10.177.1.81:80
        server  qa2 10.177.1.45:80

backend static
        balance roundrobin
        server  media1 10.177.0.86:80

相關內容