Haproxy
HAProxy 將連接定向到正確的伺服器
我在 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:.*