热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

F5通过httpclass实现多域名分流进行服务器负载均衡

F5通过httpclass实现多域名分流进行服务器负载均衡武汉通威电子有限公司陈波2012-10-9Technorati标签:f5,url,httpclass,l

F5通过http class实现多域名分流进行服务器负载均衡

武汉通威电子有限公司

陈 波

2012-10-9

Technorati 标签: f5,url,httpclass,loadbalance


一、环境和需求

#---------环境

电子商务平台

BIGIP 1600 LTM 一台,ASA5520 一台

ISP公网ip 5个

IBM服务器刀片10几个

主域名www.aaa.com,二级域名20个(tr.aaa.com/search.aaa.com/……)

#---------需求

由于公网ip有限,不能做到域名和公网ip的一对一绑定,需要通过f5来实现多域名的分流

所有用户都通过域名(80端口)访问业务,而后台每个域名分别为不同端口

每个域名代表一个业务组,后台有多组服务器池对应不同域名


二、设计思路

# 第一步------------------------------------

把5个公网ip的功能进行规划:

IP1=防火墙接口ip

IP2=防火墙预留映射ip,nat给f5的管理ip 443

IP3=业务集合bg

bg_cms.bg.aaa.com

bg_erp.bg.aaa.com

bg_exh.bg.aaa.com

bg_goods.bg.aaa.com

bg_log.bg.aaa.com

bg_member.bg.aaa.com

bg_order.bg.aaa.com

bg_tr.bg.aaa.com

IP4=业务集合main

club.aaa.com

exh.aaa.com

login.aaa.com

member.aaa.com

order.aaa.com

search.aaa.com

tr.aaa.com

www.aaa.com

IP5=业务集合pay

bg_pay.aaa.com

image.aaa.com

pay.aaa.com

# 第二步------------------------------

域名绑定到IP3的一个公网ip上

bg_cms.bg.aaa.com

bg_erp.bg.aaa.com

bg_exh.bg.aaa.com

bg_goods.bg.aaa.com

bg_log.bg.aaa.com

bg_member.bg.aaa.com

bg_order.bg.aaa.com

bg_tr.bg.aaa.com

其他域名类似

# 第三步------------------------------

防火墙做一对一端口映射

其中IP3、4、5映射到F5的3个vs ip 192.168.21.1~3

# 第四步------------------------------

F5上通过http class配置进行对数据包的url进行检查域名来进行分流,到不同的server pool,并把80流量进行目的端口转换到不同业务


三、流量逻辑图

clip_image002


四、相关截图

clip_image004

Vs_bg,vs_main1,vs_pay分别为根据域名url判断的三个分流应用组

Vs forward是内部三层交换

Vs out是服务器主动访问

clip_image006

注:指定网段可以ip forwarding三层交换。

clip_image008

注:不管真实服务器是什么端口,用户都用80端口访问

clip_image010

注:http class的配置,根据vs中接受到包头的url进行判断

clip_image012

注:在vs的resource里面匹配http class


五、配置文件

profile httpclass httpclass {

pool none

redirect none

url rewrite none

asm disable

wa disable

hosts none

paths none

headers none

COOKIEs none

}

profile httpclass bg_cms {

defaults from httpclass

pool pool_bg_cms

redirect none

hosts "cms.bg.aaa.com"

}

profile httpclass bg_erp {

defaults from httpclass

pool pool_bg_erp

redirect none

hosts "erp.bg.aaa.com"

}

profile httpclass bg_exh {

defaults from httpclass

pool pool_bg_exh

redirect none

hosts "exh.bg.aaa.com"

}

profile httpclass bg_goods {

defaults from httpclass

pool pool_bg_goods

redirect none

hosts "goods.bg.aaa.com"

}

profile httpclass bg_log {

defaults from httpclass

pool pool_bg_log

redirect none

hosts "logistics.bg.aaa.com"

}

profile httpclass bg_member {

defaults from httpclass

pool pool_bg_member

redirect none

hosts "member.bg.aaa.com"

}

profile httpclass bg_order {

defaults from httpclass

pool pool_bg_order

redirect none

hosts "order.bg.aaa.com"

}

profile httpclass bg_pay {

defaults from httpclass

pool pool_bg_pay

redirect none

hosts "pay.bg.aaa.com"

}

profile httpclass bg_tr {

defaults from httpclass

pool pool_bg_tr

redirect none

hosts "tr.bg.aaa.com"

}

profile httpclass club {

defaults from httpclass

pool pool_club

redirect none

url rewrite none

hosts "club.aaa.com"

paths none

headers none

COOKIEs none

}

profile httpclass exh {

defaults from httpclass

pool pool_exh

redirect none

url rewrite none

hosts "exh.aaa.com"

paths none

headers none

COOKIEs none

}

profile httpclass image {

defaults from httpclass

pool pool_image1

redirect none

hosts "image1.aaa.com"

}

profile httpclass login {

defaults from httpclass

pool pool_login

redirect none

hosts "login.aaa.com"

}

profile httpclass member {

defaults from httpclass

pool pool_member

redirect none

hosts "member.aaa.com"

}

profile httpclass order {

defaults from httpclass

pool pool_order

redirect none

hosts "order.aaa.com"

}

profile httpclass pay {

defaults from httpclass

pool pool_pay

redirect none

hosts "pay.aaa.com"

}

profile httpclass search {

defaults from httpclass

pool pool_search

redirect none

hosts "search.aaa.com"

}

profile httpclass tr {

defaults from httpclass

pool pool_tr

redirect none

hosts "tr.aaa.com"

}

profile httpclass www {

defaults from httpclass

pool pool_www

redirect none

hosts "www.aaa.com"

}

pool pool_bg_cms {

monitor all tcp8180

members 192.168.8.121:8180 {}

}

pool pool_bg_erp {

monitor all tcp8080

members 192.168.8.121:webcache {}

}

pool pool_bg_exh {

monitor all tcp8280

members 192.168.8.121:8280 {}

}

pool pool_bg_goods {

monitor all tcp8380

members 192.168.8.121:cruise-update {}

}

pool pool_bg_log {

monitor all tcp8780

members 192.168.8.121:8780 {}

}

pool pool_bg_member {

monitor all tcp8480

members 192.168.8.121:8480 {}

}

pool pool_bg_order {

monitor all tcp8580

members 192.168.8.121:8580 {}

}

pool pool_bg_pay {

monitor all tcp9180

members 192.168.8.221:9180 {}

}

pool pool_bg_tr {

monitor all tcp8680

members 192.168.8.121:8680 {}

}

pool pool_club {

monitor all tcp8080

members {

192.168.8.131:webcache {}

192.168.8.132:webcache {}

192.168.8.133:webcache {}

192.168.8.134:webcache {}

}

}

pool pool_exh {

monitor all tcp8280

members {

192.168.8.131:8280 {}

192.168.8.132:8280 {}

192.168.8.133:8280 {}

192.168.8.134:8280 {}

}

}

pool pool_image1 {

monitor all http

members 192.168.8.161:http {}

}

pool pool_internet {

monitor all gateway_icmp

members 192.168.21.254:any {}

}

pool pool_login {

monitor all tcp8380

members {

192.168.8.131:cruise-update {}

192.168.8.132:cruise-update {}

192.168.8.133:cruise-update {}

192.168.8.134:cruise-update {}

}

}

pool pool_member {

monitor all tcp8480

members {

192.168.8.131:8480 {}

192.168.8.132:8480 {}

192.168.8.133:8480 {}

192.168.8.134:8480 {}

}

}

pool pool_order {

monitor all tcp8580

members {

192.168.8.131:8580 {}

192.168.8.132:8580 {}

192.168.8.133:8580 {}

192.168.8.134:8580 {}

}

}

pool pool_pay {

monitor all tcp9080

members 192.168.8.221:glrpc {}

}

pool pool_search {

monitor all tcp8680

members {

192.168.8.131:8680 {}

192.168.8.132:8680 {}

192.168.8.133:8680 {}

192.168.8.134:8680 {}

}

}

pool pool_tr {

monitor all tcp8780

members {

192.168.8.131:8780 {}

192.168.8.132:8780 {}

192.168.8.133:8780 {}

192.168.8.134:8780 {}

}

}

pool pool_www {

monitor all tcp8180

members {

192.168.8.131:8180 {}

192.168.8.132:8180 {}

192.168.8.133:8180 {}

192.168.8.134:8180 {}

}

}

virtual address any {

mask 0.0.0.0

}

virtual address 192.168.5.0 {

mask 255.255.255.0

}

virtual address 192.168.6.0 {

mask 255.255.255.0

}

virtual address 192.168.8.0 {

mask 255.255.255.0

}

virtual vs_bg {

destination 192.168.21.2:http

ip protocol tcp

httpclass {

bg_cms

bg_erp

bg_exh

bg_goods

bg_log

bg_member

bg_order

bg_tr

}

persist source_addr

profiles {

http {}

tcp {}

}

}

virtual vs_forward {

ip forward

destination 192.168.8.0:any

mask 255.255.255.0

}

virtual vs_forward1 {

ip forward

destination 192.168.6.0:any

mask 255.255.255.0

}

virtual vs_forward2 {

ip forward

destination 192.168.5.0:any

mask 255.255.255.0

}

virtual vs_main1 {

destination 192.168.21.1:http

ip protocol tcp

httpclass {

club

exh

login

member

order

search

tr

www

}

persist source_addr

profiles {

http {}

tcp {}

}

}

virtual vs_out {

snat automap

pool pool_internet

destination any:any

mask 0.0.0.0

}

virtual vs_pay {

destination 192.168.21.3:http

ip protocol tcp

httpclass {

bg_pay

image

pay

}

persist source_addr

profiles {

http {}

tcp {}

}

}


推荐阅读
  • 通过优化动态网络Cookies的全网互通机制,实现了用户在任意子站点的登录和注销操作均能同步至整个网络。具体实现涉及对三个关键文件的修改:首先,在`incDv_ClsMain.asp`中定位并调整`Response.Cookies`的相关设置;其次,更新`global.asa`以确保会话状态的一致性;最后,修改`login.asp`以支持跨域认证。这一改进不仅提升了用户体验,还增强了系统的安全性和可靠性。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • 在JavaWeb项目架构中,NFS(网络文件系统)的实现与优化是关键环节。NFS允许不同主机系统通过局域网共享文件和目录,提高资源利用率和数据访问效率。本文详细探讨了NFS在JavaWeb项目中的应用,包括配置、性能优化及常见问题的解决方案,旨在为开发者提供实用的技术参考。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 在本篇教程中,我们将详细介绍如何通过 GitHub Pages 和 Hexo 对博客首页进行优化,并实现文章互动功能。具体包括如何集成百度统计,注册并登录百度统计网站(https://tongji.baidu.com/web/welcome/login),获取统计代码并将其嵌入到博客中,以便实时监控访问数据和用户行为。此外,我们还将探讨如何添加评论系统,提升读者参与度和互动体验。 ... [详细]
  • 如何利用Apache与Nginx高效实现动静态内容分离
    如何利用Apache与Nginx高效实现动静态内容分离 ... [详细]
  • ZeroMQ在云计算环境下的高效消息传递库第四章学习心得
    本章节深入探讨了ZeroMQ在云计算环境中的高效消息传递机制,涵盖客户端请求-响应模式、最近最少使用(LRU)队列、心跳检测、面向服务的队列、基于磁盘的离线队列以及主从备份服务等关键技术。此外,还介绍了无中间件的请求-响应架构,强调了这些技术在提升系统性能和可靠性方面的应用价值。个人理解方面,ZeroMQ通过这些机制有效解决了分布式系统中常见的通信延迟和数据一致性问题。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
  • 该大学网站采用PHP和MySQL技术,在校内可免费访问某些外部收费资料数据库。为了方便学生校外访问,建议通过学校账号登录实现免费访问。具体方案可包括利用学校服务器作为代理,结合身份验证机制,确保合法用户在校外也能享受免费资源。 ... [详细]
  • 解决118错误代码:专业指南与常见解决方案
    解决118错误代码:专业指南与常见解决方案 ... [详细]
  • 深入浅出解析HTTP协议的核心功能与应用
    前言——协议是指预先设定的通信规则,确保双方能够按照既定标准进行有效沟通,从而实现准确的信息交换。例如,驯兽师通过拍手使动物坐下,这实际上是一种预设的协议。本文将详细探讨HTTP协议的核心功能及其广泛应用,解析其在现代网络通信中的重要作用。 ... [详细]
author-avatar
大伟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有