Web-Server

如何讓 HAProxy 後端包含路徑

  • March 2, 2020

使用 HAProxy 進行虛擬主機時,我可以看到如何使用前端標頭中的 Host 來決定要路由到哪個後端。但是,是否可以將後端設置為包含路徑的 URL(與設置虛擬主機時使用 apache 或 nginx 所做的不同)。

http://www.techrawr.com/tag/haproxy/ - 顯示了大部分內容。但是,如果後端在一台伺服器上,但使用 backend1 和 backend2 作為伺服器呢?

我認為您正在尋找這樣的東西,以便根據 URL 平衡到不同的伺服器:

frontend http-farm
   bind 0.0.0.0:80
   acl app1web     hdr_beg(host) -i app1  # for http://app1.domain.com
   acl app2web     hdr_beg(host) -i app2  # for http://app2.domain.com

acl msg-url-1 url_reg ^\/path/games/.*
acl msg-url-2 url_reg ^\/path/photos/.*
acl msg-url-3 url_reg ^\/path/mail/.*
acl msg-url-4 url_reg ^\/path/wazap/.*

use_backend games  if  msg-url-1 app1web
use_backend photos if  msg-url-2 app2web
use_backend mail if .....



backend games
   option httpchk GET /alive.php HTTP/1.1\r\nHost:\ app1.domain.com
   option  forwardfor
   balance roundrobin
   server  appsrv-1  192.168.1.10:80  check inter 2000 fall 3
   server  appsrv-2  192.168.1.11:80  check inter 2000 fall 3

backend photos
   option httpchk GET /alive.php HTTP/1.1\r\nHost:\ app2.domain.com
   option  forwardfor
   balance roundrobin
   server  appsrv-1  192.168.1.13:80  check inter 2000 fall 3
   server  appsrv-2  192.168.1.14:80  check inter 2000 fall 3

來源:Haproxy ACL 用於 URL 請求的平衡

引用自:https://serverfault.com/questions/126144