Haproxy

HAProxy 將連接定向到正確的伺服器

  • January 24, 2017

我在 pfsense haproxy 後面有兩台伺服器,我需要確保使用者根據部分 url 登陸同一台伺服器。

http://mydomain/<location>/..../....

在我的情況下,始終是域之後的第一個斜杠,因此所有具有相同內容的使用者最終都應該在同一台伺服器上。

有什麼建議麼?

沒有本地方法可以做到這一點,但只要稍加修改,它就可以工作。

您需要在前端提取所需的 URL 路徑組件,並將其放在一次性標頭中,然後後端將使用該標頭來選擇伺服器。

你的前端看起來像這樣:

frontend fe_pfsense
 ...
 http-request set-header X-Location-Path %[capture.req.uri]
 http-request replace-header X-Location-Path ([^/]+)/.* \1
 use_backend be_pfsense
 ...

首先,我們提取 URI 並將其放在一個名為X-Location-Path.

然後我們使用正則表達式來查找並擷取第一個路徑組件,並將其覆蓋到相同的標題中。

你的後端看起來像這樣:

backend be_pfsense
 ...
 balance hdr(X-Location-Path)
 ...

我們使用hdr() 平衡算法根據我們在前端提取的路徑進行平衡。

或者,我認為您可以使用以下任一行在標頭髮送到伺服器之前刪除標頭,但您需要對此進行測試以確保事件順序按預期工作。

http-request del-header X-Location-Path

reqidel ^X-Location-Path:.*

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