请原谅我对F5和它的实现一无所知。我们有4个web服务器,我们希望在其上使用F5来分发负载。我们正在替换Apache Camel软件负载均衡器。
当前实现:
可以在Server1上看到,我们有负载均衡器+ web服务。我们是在F5上分解SW负载均衡器。
以上方案可以在F5上实现?F5会给我们一个新的网址吗?我们将与客户分享哪些请求?就像[端口]/WebService
它是否能够从传入的请求中提取会话ID,并能够维护粘性的会话映射?
发布于 2016-06-03 01:41:48
是的,您可以用F5代替Apache,并且您的设置非常标准。创建4个节点、4个成员的池和虚拟服务器。
F5将需要一个新的IP地址URL,除非Server1放弃该地址。您还可以使用标准端口( HTTP为80,HTTPS为443 )。
最困难的部分是会话ID持久性。您需要创建一个具有600秒超时的通用持久性配置文件(Local流量? Profiles ? Persistence),并创建一个基于iRule格式的记录。iRules可能很棘手,但是DevCentral社区已经有了一个您可以适应的解决方案。
来自斯坦尼斯拉斯的DevCentral:如何获得响应参数贷款。这个iRule将捕获<uid>标记中的参数。
when HTTP_RESPONSE {
# Trigger collection for up to 1MB of data
if {[HTTP::header exists "Content-Length"] && [HTTP::header "Content-Length"] <= 1048576}{
set content_length [HTTP::header "Content-Length"]
} else {
set content_length 1048576
}
# Check if $content_length is not set to 0
if { ([HTTP::status] == 200) && ($content_length > 0)} {
HTTP::collect $content_length
}
}
when HTTP_RESPONSE_DATA {
# do stuff with the payload
#find the application unique identifier between <uid> and </uid> (5 is the length of <uid> string)
persist add uie [string trim [findstr [HTTP::payload] "<uid>" 5 "</uid>"]]
}
when HTTP_REQUEST {
persist uie [string trim [findstr [HTTP::payload] "<uid>" 5 "</uid>"]]
}https://stackoverflow.com/questions/37596210
复制相似问题