Load-Balancing

haproxy 可以通過引用 URL 進行負載平衡嗎?(過濾 Slashdot 場景)

  • June 8, 2018

我有一個性能不佳的網路應用程序,它將被大規模擴展以應對網際網路的重量。

Haproxy 將用於將無狀態 Web 請求分流到許多伺服器。但是,可能會出現的流量仍然是有限的,我想優先考慮真正的使用者。

可以將 haproxy 配置為將流量從特定的引薦來源網址發送到特定的盒子嗎?

例如,如果在一篇新聞文章中提到了部署的網關,我可以將流量從那篇文章重定向到一個快速靜態 HTML 站點,上面寫著“謝謝你的關注,這裡有一些資訊。”?

如果這是可能的,也許有人可以分享配置文件中的相關片段。

是的,它可以。從文件中,

hdr_dir

hdr_dir(標題)

當其中一個標頭包含由斜杠分隔或分隔的字元串之一時返回 true。這用於執行文件名或目錄名匹配,並且可以與Referer一起使用。有關標頭匹配的更多資訊,請參閱“hdr”。

因此,您可以檢查 hdr_dir(referer) 以查看它是否與特定路徑匹配,如果匹配,則設置一個標誌,然後根據該標誌將流量發送到各個目的地。

acl slashdot hdr_dir(referer) -i /some/path
 use_backend cluster1 if slashdot
 use backend cluster2 if !slashdot

backend cluster1
 server servera 192.168.0.50:80

backend cluster2
 server serverb 192.168.0.51:80

未經測試。

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