HAProxy将连接指向正确的服务器

我在pfsense haproxy背后有两台服务器,我需要确保用户根据url的一部分login到同一台服务器上。

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

在我的情况下,它始终是域之后的第一个斜杠,因此所有具有相同用户的用户都应该在同一台服务器上。

有什么build议么?

有没有本地的方式来做到这一点,但有一点修补它可以使工作。

您需要提取您在前端所需的URLpath组件,然后将其放置在一次性头文件中,然后由后端用来select服务器。

你的前台看起来有点像这样:

 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的一次性头文件中。
然后我们使用正则expression式来查找并捕获第一个path组件,并将其覆盖到相同的头部。

而你的后端看起来就像这样:

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

我们使用hdr() 平衡algorithm根据我们在前端提取的path进行平衡。

或者,我认为你可以放下标题,然后用下面任何一行发送到服务器,但是你想testing一下,以确保事件顺序按预期工作。

 http-request del-header X-Location-Path reqidel ^X-Location-Path:.*