hd loadBalanceServer F5 BIG-IP / Citrix NetScaler / Radware / Array / HAProxy

App Hardware 专栏收录该内容
16 篇文章 0 订阅

 

 

 

配置电信网通双线双IP的解决办法

http://robbin.iteye.com/blog/459688

 

hd loadBalanceServer F5 / Ctrix / F5 / Radware / Array 

http://product.it168.com/list/b/0462_1.shtml

 

 

Ctrix NetScaler NS9.2: Build 56.2.nc

http://dl.iteye.com/upload/attachment/0074/5386/9e1f02ac-8dcc-3a61-91b4-18285c7d1b46.jpg

Downloads

Use this page to download resources for building custom management tools for the device or integration with third party tools.
 
SNMP Files
 
  SNMP v1 - MIB Object Definitions
This MIB definition can be used by SNMP managers to retrieve information from the device using SNMP Version 1.
 
  SNMP v2 - MIB Object Definitions
This MIB definition can be used by SNMP managers to retrieve information from the device using SNMP Version 2
 
  WhatsUpGold MIB Object Definitions
This MIB can be used by WhatsUP Gold SNMP manager to retrieve information from the device.
 
  WhatsUpGold Trap Definitions
The trap definitions can be used by WhatsUP Gold SNMP manager to process traps from the device.
 
NITRO
 
  NITRO API SDK for Java
The NITRO API SDK for Java contains getting started guide, samples, documentation and libraries for using the NITRO API from Java.
 
  NITRO API SDK for C#
The NITRO API SDK for C# contains getting started guide, samples, documentation and libraries for using the NITRO API from C#.
 
  NITRO API Documentation
The NITRO API Documentation contains details about configuring NetScaler and retrieving statistics using the NITRO REST API.
 
XML API
 
  XML API SDK
The XML API SDK contains getting started guide, samples and language specific reference guides for using the XML API from all supported languages and platforms.
 
  Configuration WSDL
Using the configuration WSDL, custom applications can be developed to manage device configuration.
 
  Statistics WSDL
Using the statistics WSDL, custom applications can be developed to retrieve performance data from the device.
 
SCOM Management Pack
 
  NetScaler Management Pack for System Center Operation Manager 2007
The Citrix NetScaler Operation Manager pack provides monitors and rules to monitor the NetScaler systems deployed in your network.
The Citrix NetScaler Performance and Resource Optimization (PRO) Management Pack (MP) provides monitors and rules to monitor the health of the virtual servers configured on the managed NetScaler systems and initiate corrective actions using the PRO feature of SCVMM when the virtual servers become unhealthy.
 
Access Gateway Plugin
 
  Download Access Gateway Plugin for Windows
The Access Gateway Plugin for Windows can be installed on Windows XP or Windows Vista to securely access network resources through the Access Gateway.

 

Guest@192.168.65.253

Ctrix System Overview

 

Load Balancing | Interface
Up since
Thu Sep 20 11:04:02 2012
Packet CPU usage (%)
0.20
Management CPU usage (%)
2.40
Memory usage (MB)
649
Memory usage (%)
22.67
Last Transition time
Thu Sep 20 11:05:11 2012
System state
UP
Master state
Primary
# SSL cards UP
4
# SSL cards present
4

 

System Disks
Used (%)
Available (MB)
/flash
2
3,450
/var
2
176,210
more...

 

Throughput Statistics
Rate (/s)
Total
Megabits received
0
2,228,293
Megabits transmitted
0
2,113,902

 

TCP Connections
Client
Server
All connections
21
118
Established connections
17
3
more...

 

HTTP
Rate (/s)
Total
Total requests
0
73,640,756
Total responses
0
73,640,290
Request bytes received
164
20,477,789,782
Response bytes received
2,249
185,581,125,421
more...

 

SSL
Rate (/s)
Total
Transactions
0
21,714
Session hits
0
1,342
more...

 

Integrated Caching
Rate (/s)
Total
Hits
0
0
Misses
0
0
Origin bandwidth saved(%)-
0
Maximum memory(KB)-
0
Maximum memory active value(KB)-
0
Utilized memory(KB)-
0
more...

 

Compression
Value
HTTP compression ratio
0
Total HTTP compression ratio
1
more...

 

Application Firewall
Rate (/s)
Total
Requests
0
0
Responses
0
0
Aborts
0
0
Redirects
0
0
more...

citrix问题总结

一、直接访问应用服务器可以访问,通过citrix负载均衡虚地址访问应用服务器不能访问。

0、检查ctrix log

1、检查应用服务器端口是否正常,citrix负载service状态、VS状态是否正常。
2、检查负载均衡策略、会话保持情况
3、检查service配置中是否勾选了Use Source IP
4、检查防火墙策略是否阻止端口
二、一种应用同时不能访问(如所有redis服务均不可用)

0、检查ctrix log

1、检查负载均衡设备是否进行过主备切换,检查主备机配置是否相同。
2、检查应用服务器端口是否正常,citrix负载service状态、VS状态是否正常。
3、检查负载均衡策略、会话保持情况
三、一部分用户通过citrix可以访问,一部分用户通过citrix不能访问。

0、检查ctrix log

1、检查负载均衡配置协议是否与应用匹配,如ftp应用,是否选择ftp协议
2、抓包对数据进行分析。
3、原厂工程师技术支持。
四、citrix负载均衡设备频繁进行主备切换

0、检查ctrix log

1、原厂工程师技术支持、检查HA配置是否正常、系统版本是否存在问题。

 

 

 

F5

电信100M带宽,理论值80M,目前值60M,还有20M即达到流量顶峰。

峰时10:00-11:00,13:00-14:00,20:00-21:00

http://dl.iteye.com/upload/attachment/0083/9579/391442f4-42ba-3903-8b03-6a75a2e59b2e.jpg

 

F5 (15)

Radware (50)
金御 (5)
BARRACUDA/梭子鱼 (12)
CITRIX (12)
Array (5)
Foundry (8)
信安世纪/infosec (4)
AboCom/友旺 (4)

Rether/美商动脉 (8)

 

世纪互联 CDN

http://cdn.21vianet.com/

 

负载均衡交换机选购指南(图)

 

http://publish.it168.com/2004/0405/20040405002501.shtml

 

第1页:选购基础 第2页:ServerIron 100-8GC02F负载均衡..
第3页:Avaya P333R-LB 负载均衡交换机 第4页:Nortel Alteon AD4内容交换机
第5页:3Com SuperStack 3服务器负载均.. 第6页:SummitPx1负载均衡交换机
第7页:F5 BIG-IP负载均衡交换机 第8页:选购小结

 

F5助力eBay数据库服务器负载均衡

http://www.enet.com.cn/article/2006/0927/A20060927217074.shtml

 

【导读】:美国eBay公司是世界上最大的网上交易平台。据统计,每天有涉及几千个分类的几百万件商品在eBay上销售;eBay的年增长率达到50%。但是,和快速增长的业务相比,eBay的IT支撑系统的高可用性还相对滞后,其IT系统重构规划时还确认用户数据库有单点故障(SPOF)。

  美国eBay公司是世界上最大的网上交易平台。据统计,每天有涉及几千个分类的几百万件商品在eBay上销售;eBay的年增长率达到50%。但是,和快速增长的业务相比,eBay的IT支撑系统的高可用性还相对滞后,其IT系统重构规划时还确认用户数据库有单点故障(SPOF)。为此,eBay采用了F5公司提供的数据库服务器负载均衡解决方案 ,不仅使数据库可用性达到99.9%,而且还实现了在线拓展、高安全和高可管理性,从而解决了eBay的用户数据库服务请求的压力,为其进一步的持续高速发展铺平了道路;该方案也为电子商务 以及其他公共服务行业类的数据库服务器负载均衡,提供了一个不可多得的成功样板。 

  需求及挑战  

  问题还得从eBay的数据库系统说起,eBay拥有30套生产数据库,全部采用Oracle数据库,其中包括12 数据库支持 “live” 项目 (Sun 480/4500);1 个数据库支持存档项目(Sun 4800);4个数据库支持客户数据 (Sun 4800);2 个数据库支持 eBay的反馈系统 (Sun 480);1个 数据库支持非正常的 “cache” 数据 (Sun 4800);其他的数据库 (大部分 Sun 480 class)。同时,采用Hitachi SAN  建立存储 架构,建立了两个远程备份数据库,并实施实时复制数据到远程数据库实现冗灾,同时每24小时实施针对数据块的数据备份。 

  因此,通过eBay 数据库读写的比率分析,可以发现,eBay在数据库提供服务时,读和查询的操作达到530亿次,而数据库写和更新的操作达到2亿次。“读和查询”操作与“写和更新”的比率达到265:1。可见查询和数据库读的操作给数据库管理系统带来巨大的压力。而更为严峻的是,eBay年增长率达到50%,这意味着,来自读和查询的操作压力将持续增大,要保证数据库服务的响应能力和效率,稳定性和安全性,eBay 必须采用数据库服务器的负载均衡解决方案。 

  但是,由于系统庞大,出于投资保护等考虑,Bay 对数据库服务器的负载均衡解决方案的需求有如下几个特点:不改变eBay的数据库体系结构;可用性目标达到99.9%;需承载eBay每年50%的高成长;简单管理等等。这意味着在不对系统大动干戈的同时,却革命性地提高其性能,其挑战不言而喻。 

  解决方案  

  针对eBay数据库服务器负载均衡的需求特点,eBay考虑了三种主要解决方案。1) 将数据库垂直分割,划分成多层数据库处理,减轻原来单层数据库处理数据而形成的瓶颈与可用性问题。但问题:这种方案很难部署,而且也没有从根本上解决单点故障问题。2)采用Oracle OPS/RAC机群解决方案。问题:要求给便数据库编程代码,非常难以管理与维护。3)采用F5 与SharePlex 联合解决方案。其优点是:简单管理,不需要改变整个体系结构。 

  在最初,eBay采用Oracle OPS/RAC解决问题。但是后来经过充分论证和探讨,最终eBay采用了基于F5/SharePlex的解决方案。F5解决方案是应用类似OPS/RAC,但是却相对简单的f5的解决方案,不用改变数据库体系结构,管理和维护简单得多。F5解决方案得主要思路是,通过应用将数据库“读与查询”的操作与”写和更新”的操作导向到分开的 “逻辑” 数据库,这些数据库服务器都单独配备数据存储,而没有采用共享存储的方式!这样,F5 应用交换机 动态的将所有的数据库”读与查询”请求导向到查询数据库服务器群中,并智能负载均衡到最佳的数据库服务器上。所有的”写和更新”请求都指向到一个单一的数据库服务器上,由SeharePlex动态实时将数据记录复制到”读与查询”数据库服务器群的数据库中。 

  这样,一方面,数据库服务器群被F5应用交换机虚拟化和集群,变成了一个“池”;另一方面,“读与查询”的操作,可以根据需要,选择更高效率得数据库服务器,从而使“读与查询”的操作压力得到解决。同时,随着业务的增长,还可以随时根据客户业务的压力在线扩展新的服务器在这个群之中。由于根据以上分析,数据库读写的比例超过260倍,采用这样的方法,有效解决了数据库性能和高可用性要求。

 

  采用F5/Share Plex 解决方案示意图

   方案特点  

  F5解决方案具有以下特点:1.运用分离读和写操作,使读和写操作进入分别的逻辑数据库 而不是共享 磁盘 2. f5 数据库服务器均衡可以使所有的读操作交叉分配到available hosts; 所有的写操作都指定到单一的database-of-record ; 3.应用类似OPS/RAC,但是却相对简单的f5的解决方案; 4.发挥f5产品灵敏的量测性和显著的增强可用性。 

  采用F5的BIG-IP负载均衡器后,对于eBay应用系统有独到的优势: 

  高可用性: BIGIP动态分配每一个流量请求到后台的四台Oracle 9i Database 数据库服务器,并动态检查各个服务器的健康状态,将下一个请求分配给最有效率的服务器,任何服务起死机时,BIGIP即刻将流量请求分配给其他的三台服务器,从而达到99.999%系统有效性。特别是针对Oracle 9i 数据库服务器,F5公司专门为Oracle 9i 数据库开发了专用的健康检查模块,通过调用F5专有的扩展应用校验(EAV)进程,F5能够随时得到Oracle 9i数据库的应用层服务能力而不是其他的负载均衡设备所采用的iCMP / TCP 层进行健康检查。 

  高安全性: BIGIP支持地址翻译技术和安全地址翻译,这样一来客户不可能知道真正提供服务的服务器的IP地址与端口,从而保护数据库服务器不受到诸如SYN Flood 等DOS及DDOS进攻。 

  高效率: 采用BIG-IP 负载均衡之后, BIG-IP可以智能寻找最佳状态的数据库服务器从而保证客户得到响应最快的数据库服务器以提供最佳的查询数据库服务! 

  高可扩展性: BIGIP可以支持动态增加或删除其负载均衡的数据库服务器群组的任何数量的服务器,而不需要对前端或后台做任何改变从而使得系统扩展轻松方便,透明。 

  高可管理性: BIGIP有专门的管理软件可以实时监控整个数据库服务器群组的流量状态,并分析发展趋势帮助客户及时根据流量增长增加服务器。 
   
   客户价值  

  F5解决方案具有低成本、低维修,以及保护投资,高效率的特点,并方便在线拓展,面向未来。在2001年第二季度,F5公司与Quest公司合作成功帮助客户实现了以上解决方案,初期布署了两台”读与查询”数据库服务器和一台”写和更新”数据库服务器。在2001年第三季度成功通过了99.9%高可用性。并真正实现了在线高可扩展性,在2002年增加另外两台读与查询”数据库服务器,并于2002年第三季度增加部署了冗灾备份的功能。 

  F5提供的eBay数据库服务器负载均衡解决方案对行业也具有相当的借鉴意义。电子商务应用同样有着数据库查询的压力,如果能够有效将查询的压力分解到单独的服务器群来处理,将有效提高电子商务的应用效率。 对于电子商务类应用系统数据库扩展解决方案,只需要在Web Portal上将数据库请求分成两个不同模块,问题便迎刃而解。 

  对于公众服务行业类的数据库服务器的负载均衡,如银行,电信,税务等系统,每月和每季度的都会有报表生成汇总,这些报表既包括用户的月结单数据信息,也需要产生总体业务的业绩报告。这样就必须对数据库系统进行检索和查询。如果这些业务工作与实际生产环境是一个数据库的情况下,将造成系统的巨大压力。采用F5类似方法,同样能够有效达到高可用性预告可扩展性能的需要! 
 

Web server负载均衡url中含非unicode的中文字符影响cookie persist问题

http://doubao.iteye.com/blog/241471

根据在F5 Bigip 4.5.12 release notes中有以下信息:
 
Fixes and enhancements in prior maintenance releases
The current release includes the fixes and enhancements that were distributed in prior maintenance releases, as listed below. 

(Prior releases are listed with the most recent first.) 
Version 4.5.11
Removed limitations on the header insert and cookie insert attributes  (CR41519)
The BIG-IP system no longer checks GET requests for binary characters when deciding whether to use cookie insertion. 

In versions 4.5 PTF-04 through 4.5.10 of the BIG-IP software, the BIG-IP system fails to perform cookie insertion for traffic 

with headers that include Chinese characters in the GET request. 
根 据标准的http协议规范,对url上的中文字符是必须采用unicode的方式进行处理的。而在bigip 4.5.10以前的版本中,如果 http url包含了非unicode的中文字符,确实会影响cookie insert persistence的工作。而经检查,现场发生问题的 bigip的软件版本是4.5.10,并且发生问题的彩铃web请求确实有未encode的中文字符,因此导致的session丢失的现象。

 

升级F5的版本,问题解决

 

CDN技术原理

http://jspengxue.iteye.com/blog/44609

先,让我们来看一下传统的Internet网络的基本结构和数据传输情况,如下图1-1所示。

图1-1 Internet 网络基本结构及数据传输方式

· 根据传统的网络结构,用户的访问流程基本如下:

  a) 用户在自己的浏览器中输入要访问的网站的域名;
  b) 浏览器向本地DNS请求对该域名的解析;
  c) 本地DNS将请求发到网站授权的DNS服务器;
  d) 授权DNS将服务器的IP地址作为解析结果送给本地DNS,
  e) 本地DNS将解析结果返还给用户,同时将该解析结果保存在自己的缓存中,直到相应的TTL(生存周期)过期,才再向网站的授权DNS请求解析。
  f) 用户在得到IP地址后,向该地址所指向的网站的服务器进行访问。

· 上述传统的访问模式存在着如下几个严重影响互联网用户的访问效率和质量的环节:

  首先,传统的DNS解析过程在将网站主机域名转换为IP地址时,并不预先判断该服务器是否正常工作;即使该服务器已经宕机不能提供服务了,用户的请求仍将被发往这台服务器,造成服务的中断。
  其次,互联网从诞生的第一天起,就缺乏一个专门的中央管理结构,也缺乏统一的产品和技术标准 。这一点曾是互联网得以迅速发展的优势。但是,随着互联网的规模越来越大,这一点造成了众多不同网络结构并存的局面。不同网络间的兼容以及不同网络运营商/ISP之间的传输瓶颈等问题使得数据的流通受到限制。据统计,现有互联网上的平均传输速率不高于30Kbps。
  另外,现有的互联网以数据包传输为基础,任何一个数据包的丢失或出错都必须重新发送,而平均一个重传过程需要3秒钟,从而导致延迟 。并且现有的HTTP协议也有诱发延迟的因素,据调查,完整下载一个网页,需要在用户和服务器之间往返20~100次。 最 后,现有的路由技术以路由器工作状态的历史数据为依据来确定当前数据包的传输路径,无法真实反应当前的路由和网络连接状况。这往往会导致数据传输所经过的 路径并不是当前的最佳路径。而且,众多的路由器和交换机不但使数据传输的时间延迟增大,还会增加出错的几率,因为任何一个路由器出现问题都会影响到整个传 输过程。

· ChinaCache CDN 工作原理示意图:

· ChinaCache CDN 对网络的优化作用:

ChinaCache CDN系统通过在精心挑选的网络各处放置节点服务器,从而将网站的内容放置到离用户最近的地方,避免了上述影响互联网传输性能的“第一公里”和“网间互联 瓶颈”等各个环节,为改善中国的互联网环境、解决网站的服务质量和提高用户的上网速度提供了有效的解决方案。
ChinaCache CDN对网络的优化作用主要体现在如下几个方面:
 ◆ 解决服务器端的“第一公里”问题
 ◆ 缓解甚至消除了不同运营商之间互联的瓶颈造成的影响
 ◆ 减轻了各省的出口带宽压力
 ◆ 缓解了骨干网的压力
 ◆ 优化了网上热点内容的分布

  ChinaCache CDN对网络的优化作用原理图如下:


在描述CDN的实现原理,让我们先看传统的未加缓存服务的访问过程,以便了解CDN缓存访问方式与未加缓存访问方式的差

用户访问未使用CDN缓存网站的过程为:
1) 用户向浏览器提供要访问的域名;
  2) 浏览器调用域名解析函数库对域名进行解析,以得到此域名对应的IP地址;
  3) 浏览器使用所得到的IP地址,域名的服务主机发出数据访问请求;
  4) 浏览器根据域名主机返回的数据显示网页的内容。
  通过以上四个步骤,浏览器完成从用户处接收用户要访问的域名到从域名服务主机处获取数据的整个过程。CDN网络是在用户和服务器之间增加 Cache层,如何将用户的请求引导到Cache上获得源服务器的数据,主要是通过接管DNS实现,下面让我们看看访问使用CDN缓存后的网站的过程:
使用了CDN缓存后的网站的访问过程变为:
1) 用户向浏览器提供要访问的域名;
  2) 浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实际IP地 址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;在此过程中,使用的全局负载均衡DNS解析,如根据地理位置信息解析对应的IP 地址,使得用户能就近访问。
  3) 此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,向缓存服务器发出访问请求;
  4) 缓存服务器根据浏览器提供的要访问的域名,通过Cache内部专用DNS解析得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求;
  5) 缓存服务器从实际IP地址得得到内容以后,一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程;
  6) 客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。
通过以上的分析我们可以得到,为了实现既要对普通用户透明(即加入缓存以后用户客户端无需进行任何设置,直接使用被加速网站原有的域名即可访 问),又要在为指定的网站提供加速服务的同时降低对ICP的影响,只要修改整个访问过程中的域名解析部分,以实现透明的加速服务,  下面是CDN网络实 现的具体操作过程。
  1) 作为ICP,只需要把域名解释权交给CDN运营商,其他方面不需要进行任何的修改;操作时,ICP修改自己域名的解析记录,一般用cname方式指向CDN网络Cache服务器的地址。
  2) 作为CDN运营商,首先需要为ICP的域名提供公开的解析,为了实现sortlist,一般是把ICP的域名解释结果指向一个CNAME记录;
  3) 当需要进行sorlist时,CDN运营商可以利用DNS对CNAME指向的域名解析过程进行特殊处理,使DNS服务器在接收到客户端请求时可以根据客户端的IP地址,返回相同域名的不同IP地址;
  4) 由于从cname获得的IP地址,并且带有hostname信息,请求到达Cache之后,Cache必须知道源服务器的IP地址,所以在CDN运营商内部维护一个内部DNS服务器,用于解释用户所访问的域名的真实IP地址;
  5) 在维护内部DNS服务器时,还需要维护一台授权服务器,控制哪些域名可以进行缓存,而哪些又不进行缓存,以免发生开放代理的情况。

CDN网络架构主要由两大部分,分为中心和边缘两部分,中心指CDN网管中心和DNS重定向解析中心,负责全局负载均衡,设备系统安装在管理中心机房,边缘主要指异地节点,CDN分发的载体,主要由Cache和负载均衡器等组成。
  当用户访问加入CDN服务的网站时,域名解析请求将最终交给全局负载均衡DNS进行处理。全局负载均衡DNS通过一组预先定义好的策略,将当 时最接近用户的节点地址提供给用户,使用户能够得到快速的服务。同时,它还与分布在世界各地的所有CDNC节点保持通信,搜集各节点的通信状态,确保不将 用户的请求分配到不可用的CDN节点上,实际上是通过DNS做全局负载均衡。
  对于普通的Internet用户来讲,每个CDN节点就相当于一个放置在它周围的WEB。通过全局负载均衡DNS的控制,用户的请求被透明地指向离他最近的节点,节点中CDN服务器会像网站的原始服务器一样,响应用户的请求。由于它离用户更近,因而响应时间必然更快。
  每个CDN节点由两部分组成:负载均衡设备和高速缓存服务器
  负载均衡设备负责每个节点中各个Cache的负载均衡,保证节点的工作效率;同时,负载均衡设备还负责收集节点与周围环境的信息,保持与全局负载DNS的通信,实现整个系统的负载均衡。
  高速缓存服务器(Cache)负责存储客户网站的大量信息,就像一个靠近用户的网站服务器一样响应本地用户的访问请求。
  CDN的管理系统是整个系统能够正常运转的保证。它不仅能对系统中的各个子系统和设备进行实时监控,对各种故障产生相应的告警,还可以实时监 测到系统中总的流量和各节点的流量,并保存在系统的数据库中,使网管人员能够方便地进行进一步分析。通过完善的网管系统,用户可以对系统配置进行修改。
  理论上,最简单的CDN网络有一个负责全局负载均衡的DNS和各节点一台Cache,即可运行。DNS支持根据用户源IP地址解析不同的 IP,实现就近访问。为了保证高可用性等,需要监视各节点的流量、健康状况等。一个节点的单台Cache承载数量不够时,才需要多台Cache,多台 Cache同时工作,才需要负载均衡器,使Cache群协同工作。

CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可 以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均 等原因所造成的用户访问网站响应速度慢的问题。
  实际上,内容分发布网络(CDN)是一种新型的网络构建方式,它是为能在传统的IP网发布宽带丰富媒体而特别优化的网络覆盖层;而从广义的 角度,CDN代表了一种基于质量与秩序的网络服务模式。简单地说,内容发布网(CDN)是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请 求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在。通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。总的来说,内 容服务基于缓存服务器,也称作代理缓存(Surrogate),它位于网络的边缘,距用户仅有"一跳"(Single Hop)之遥。同时,代理缓存是内容提供商源服务器(通常位于CDN服务提供商的数据中心)的一个透明镜像。这样的架构使得CDN服务提供商能够代表他们 客户,即内容供应商,向最终用户提供尽可能好的体验,而这些用户是不能容忍请求响应时间有任何延迟的。据统计,采用CDN技术,能处理整个网站页面的 70%~95%的内容访问量,减轻服务器的压力,提升了网站的性能和可扩展性。
  与目前现有的内容发布模式相比较,CDN强调了网络在内容发布中的重要性。通过引入主动的内容管理层的和全局负载均衡,CDN从根本上区别 于传统的内容发布模式。在传统的内容发布模式中,内容的发布由ICP的应用服务器完成,而网络只表现为一个透明的数据传输通道,这种透明性表现在网络的质 量保证仅仅停留在数据包的层面,而不能根据内容对象的不同区分服务质量。此外,由于IP网的"尽力而为"的特性使得其质量保证是依靠在用户和应用服务器之 间端到端地提供充分的、远大于实际所需的带宽通量来实现的。在这样的内容发布模式下,不仅大量宝贵的骨干带宽被占用,同时ICP的应用服务器的负载也变得 非常重,而且不可预计。当发生一些热点事件和出现浪涌流量时,会产生局部热点效应,从而使应用服务器过载退出服务。这种基于中心的应用服务器的内容发布模 式的另外一个缺陷在于个性化服务的缺失和对宽带服务价值链的扭曲,内容提供商承担了他们不该干也干不好的内容发布服务。
  纵观整个宽带服务的价值链,内容提供商和用户位于整个价值链的两端,中间依靠网络服务提供商将其串接起来。随着互联网工业的成熟和商业模式 的变革,在这条价值链上的角色越来越多也越来越细分。比如内容/应用的运营商、托管服务提供商、骨干网络服务提供商、接入服务提供商等等。在这一条价值链 上的每一个角色都要分工合作、各司其职才能为客户提供良好的服务,从而带来多赢的局面。从内容与网络的结合模式上看,内容的发布已经走过了ICP的内容 (应用)服务器和IDC这两个阶段。IDC的热潮也催生了托管服务提供商这一角色。但是,IDC并不能解决内容的有效发布问题。内容位于网络的中心并不能 解决骨干带宽的占用和建立IP网络上的流量秩序。因此将内容推到网络的边缘,为用户提供就近性的边缘服务,从而保证服务的质量和整个网络上的访问秩序就成 了一种显而易见的选择。而这就是内容发布网(CDN)服务模式。CDN的建立解决了困扰内容运营商的内容"集中与分散"的两难选择,无疑对于构建良好的互 联网价值链是有价值的,也是不可或缺的最优网站加速服务。


目前的CDN服务主要应用于证券、金融保险、ISP、ICP、网上交易、门户网站、大中型公司、网络教学等领域。另外在行业专网、互联网中都可以 用到,甚至可以对局域网进行网络优化。利用CDN,这些网站无需投资昂贵的各类服务器、设立分站点,特别是流媒体信息的广泛应用、远程教学课件等消耗带宽 资源多的媒体信息,应用CDN网络,把内容复制到网络的最边缘,使内容请求点和交付点之间的距离缩至最小,从而促进Web站点性能的提高,具有重要的意 义。CDN网络的建设主要有企业建设的CDN网络,为企业服务;IDC的CDN网络,主要服务于IDC和增值服务;网络运营上主建的CDN网络,主要提供 内容推送服务;CDN网络服务商,专门建设的CDN用于做服务,用户通过与CDN机构进行合作,CDN负责信息传递工作,保证信息正常传输,维护传送网 络,而网站只需要内容维护,不再需要考虑流量问题。
  CDN能够为网络的快速、安全、稳定、可扩展等方面提供保障。
  IDC建立CDN网络,IDC运营商一般需要有分布各地的多个IDC中心,服务对象是托管在IDC中心的客户,利用现有的网络资源,投资较 少,容易建设。例如某IDC全国有10个机房,加入IDC的CDN网络,托管在一个节点的Web服务器,相当于有了10个镜像服务器,就近供客户访问。宽 带城域网,域内网络速度很快,出城带宽一般就会瓶颈,为了体现城域网的高速体验,解决方案就是将Internet网上内容高速缓存到本地,将Cache部 署在城域网各POP点上,这样形成高效有序的网络,用户仅一跳就能访问大部分的内容,这也是一种加速所有网站CDN的应用。

F5 BIG-IP负载均衡器配置实例与Web管理界面体验[原创]

http://iask.sina.com.cn/user/my_ishare.php?uid=1278987704&page=0

http://yangzb.iteye.com/blog/473815

http://blog.s135.com/f5_big_ip

 [文章作者:张宴 本文版本:v1.0 最后修改:2008.05.22 转载请注明出自:http://blog.s135.com/f5_big_ip ]

  前言:最近一直在对比测试F5 BIG-IP和Citrix NetScaler负载均衡器的各项性能,于是写下此篇文章,记录F5 BIG-IP的常见应用配置方法。

   目前,许多厂商推出了专用于平衡服务器负载的负载均衡器,如F5 Network公司的BIG-IP,Citrix公司的NetScaler。F5 BIG-IP LTM 的官方名称叫做本地流量管理器,可以做4-7层负载均衡,具有负载均衡、应用交换、会话交换、状态监控、智能网络地址转换、通用持续性、响应错误处理、 IPv6网关、高级路由、智能端口镜像、SSL加速、智能HTTP压缩、TCP优化、第7层速率整形、内容缓冲、内容转换、连接加速、高速缓存、 Cookie加密、选择性内容加密、应用攻击过滤、拒绝服务(DoS)攻击和SYN Flood保护、防火墙—包过滤、包消毒等功能。

  以下是F5 BIG-IP用作HTTP负载均衡器的主要功能:
  ①、F5 BIG-IP提供12种灵活的算法将所有流量均衡的分配到各个服务器,而面对用户,只是一台虚拟服务器。
   ②、F5 BIG-IP可以确认应用程序能否对请求返回对应的数据。假如F5 BIG-IP后面的某一台服务器发生服务停止、死机等故障,F5会检查出来并将该服务器标识为宕机,从而不将用户的访问请求传送到该台发生故障的服务器 上。这样,只要其它的服务器正常,用户的访问就不会受到影响。宕机一旦修复,F5 BIG-IP就会自动查证应用已能对客户请求作出正确响应并恢复向该服务器传送。
  ③、F5 BIG-IP具有动态Session的会话保持功能。
  ④、F5 BIG-IP的iRules功能可以做HTTP内容过滤,根据不同的域名、URL,将访问请求传送到不同的服务器。



  下面,结合实例,配置F5 BIG-IP LTM v9.x:

  点击在新窗口中浏览此图片

   ①、如图,假设域名blog.s135.com被解析到F5的外网/公网虚拟IP:61.1.1.3(vs_squid),该虚拟IP下有一个服务器池 (pool_squid),该服务器池下包含两台真实的Squid服务器(192.168.1.11和192.168.1.12)。
  ②、如果 Squid缓存未命中,则会请求F5的内网虚拟IP:192.168.1.3(vs_apache),该虚拟IP下有一个默认服务器池 (pool_apache_default),该服务器池下包含两台真实的Apache服务器(192.168.1.21和192.168.1.22), 当该虚拟IP匹配iRules规则时,则会访问另外一个服务器池(pool_apache_irules),该服务器池下同样包含两台真实的Apache 服务器(192.168.1.23和192.168.1.24)。
  ③、另外,所有真实服务器的默认网关指向F5的自身内网IP,即192.168.1.2。
  ④、所有的真实服务器通过SNAT IP地址61.1.1.4访问互联网。



  详细配置步骤:

  一、登录到F5 BIG-IP管理界面:
  1、初次使用:
  ①、打开F5 BIG-IP电源,用一根网线(直连线和交叉线均可)连接F5 BIG-IP的3.1管理网口和笔记本电脑的网口,将笔记本电脑的IP地址配置为“192.168.1.*”,子网掩码配置为“255.255.255.0”。
  ②、用浏览器访问F5 BIG-IP的出厂默认管理IP地址https://192.168.1.245https://192.168.245.245
  ③、输入出厂默认用户名:admin,密码:admin
  ④、点击Activate进入F5 BIG-IP License申请与激活页面,激活License。
  ⑤、修改默认管理密码。

  2、以后登录:
  通过F5 BIG-IP的自身外网IP登录。
  ①、假设设置的F5自身外网IP为61.1.1.2,就可以通过https://61.1.1.2/ 登录。
  ②、还可以通过SSH登录,用户名为root,密码跟Web管理的密码相同。



  二、创建两个VLAN:internal和external,分别表示内网和外网。
  ★创建VLAN演示页面: http://blog.s135.com/book/f5/vlan_create.htm
  ★VLAN列表演示页面: http://blog.s135.com/book/f5/vlan_list.htm

  1、创建VLAN:internal(内网)
  在“Network→VLANs”页面点击“create”按钮:
  ①、Name栏填写:internal(填一个英文名称)
  ②、Tag栏填写:4093(填一个数字)
  ③、Interfaces栏:将Available列的“1.1”拉到Untagged列。1.1表示F5 BIG-IP的第一块网卡。

  2、创建VLAN:external(外网)
  在“Network→VLANs”页面点击“create”按钮创建VLAN:
  ①、Name栏填写:internal(填一个英文名称)
  ②、Tag栏填写:4094(填一个数字)
  ③、Interfaces栏:将Available列的“1.2”拉到Untagged列。1.2表示F5 BIG-IP的第二块网卡。



  三、创建F5 BIG-IP的自身IP:分别对应internal(内网)和external(外网)。
  ★创建自身IP演示页面: http://blog.s135.com/book/f5/selfip_create.htm

  1、创建自身内网IP:192.168.1.2
  在“Network→Self IPs”页面点击“create”按钮:
  ①、IP Address栏填写:192.168.1.2(填内网IP地址)
  ②、Netmask栏填写:255.255.255.0(填内网子网掩码)
  ③、VLAN栏选择:internal
  ④、Port Lockdown栏选择:Allow Default(默认值)

  2、创建自身外网IP:61.1.1.2
  在“Network→Self IPs”页面点击“create”按钮:
  ①、IP Address栏填写:61.1.1.2(填外网IP地址)
  ②、Netmask栏填写:255.255.255.0(填外网子网掩码)
  ③、VLAN栏选择:external
  ④、Port Lockdown栏选择:Allow Default(默认值)



  四、创建默认网关路由
  ★创建默认网关路由演示页面: http://blog.s135.com/book/f5/routes_create.htm

  1、创建默认网关路由
  在“Network→Routes”页面点击“create”按钮:
  ①、Type栏选择:Default Gateway(默认值)
  ②、Resource栏选择:Use Gateeay...,在其后的输入框填写网关IP地址:61.1.1.1(这里假设此IP为外网网关地址)



  五、创建服务器自定义健康检查
  ★创建服务器自定义健康检查演示页面: http://blog.s135.com/book/f5/monitors_create.htm

  1、创建自定义HTTP健康检查:monitor_http
  在“Local Traffic→Monitors”页面点击“create”按钮:
  ①、Name栏填写:monitor_http(填一个英文名称)
  ②、Type栏选择:HTTP
  ③、Import Settings栏选择:HTTP
  ④、Interval栏填写:5(表示每5秒钟进行一次健康检查)
  ⑤、Timeout栏填写:16(表示健康检查的连接超时时间为16秒)
  ⑥、Send String栏填写:GET /(也可以根据自己的需求发送其他方法的请求,例如HEAD /或者GET /index.htm)
  ⑦、Receive String栏填写:(填写对应的返回字符串,默认不填写)



  六、创建服务器池(pool)
  ★创建服务器池演示页面: http://blog.s135.com/book/f5/pools_create.htm

  1、创建Squid服务器池:pool_squid
  在“Local Traffic→Pools”页面点击“create”按钮:
  ①、Name栏填写:pool_squid(填一个英文名称)
  ②、Health Monitors栏:将第四步创建的自定义HTTP健康检查“monitor_http”由Available列拉到Active列
  ③、Load Balancing Method栏选择:Round Robin(这里选择的负载均衡方式是轮询,也可以选择其他方式)
  ④、New Members栏:先选择New Address,再添加两台Squid服务器的IP地址192.168.1.11、192.168.1.12以及它们的端口80

  2、创建第一组Apache服务器池:pool_apache_default
  在“Local Traffic→Pools”页面点击“create”按钮:
  ①、Name栏填写:pool_apache_default(填一个英文名称)
  ②、Health Monitors栏:将第四步创建的自定义HTTP健康检查“monitor_http”由Available列拉到Active列
  ③、Load Balancing Method栏选择:Round Robin(这里选择的负载均衡方式是轮询,也可以选择其他方式)
  ④、New Members栏:先选择New Address,再添加第一组两台Apache服务器的IP地址192.168.1.21、192.168.1.22以及它们的端口80

  3、创建第二组Apache服务器池:pool_apache_irules
  在“Local Traffic→Pools”页面点击“create”按钮:
  ①、Name栏填写:pool_apache_irules(填一个英文名称)
  ②、Health Monitors栏:将第四步创建的自定义HTTP健康检查“monitor_http”由Available列拉到Active列
  ③、Load Balancing Method栏选择:Round Robin(这里选择的负载均衡方式是轮询,也可以选择其他方式)
  ④、New Members栏:先选择New Address,再添加第二组两台Apache服务器的IP地址192.168.1.23、192.168.1.24以及它们的端口80



  七、创建供七层负载均衡使用的Profiles配置
  ★创建Profiles演示页面: http://blog.s135.com/book/f5/profiles_create.htm

  1、创建Profiles配置:profile_http
  在“Local Traffic→Profiles”页面点击“create”按钮:
  ①、Name栏填写:profile_http(填一个英文名称)
  ②、Parent Profile栏选择:HTTP
   ③、Insert XForwarded For栏:如果需要,可以选中方框,选择Enable(在Header头中插入x-forwarded-for标记,以便做七层负载均衡时能够获取用户真 实IP,本文中Squid服务器开启了follow_x_forwarded_for allow all,因此F5无需设置此项)

  注:在此设置页面中,还有压缩等优化功能,可以根据需要进行设置。



  八、创建iRules规则
  ★创建iRules规则演示页面: http://blog.s135.com/book/f5/irules_create.htm

  1、创建iRules规则:irules_apache
  在“Local Traffic→Profiles”页面点击“create”按钮:
  ①、Name栏填写:irules_apache(填一个英文名称)
  ②、Definition栏填写以下脚本,将访问的域名为“blog.s135.com”,访问的网址以“.htm”结尾,或者以“/read.php”开头的请求全部转到服务器池“pool_apache_irules”:

  1. when HTTP_REQUEST {  
  2.   if  {[HTTP::host] equals  "blog.s135.com"  and [HTTP::uri] ends_with  ".htm" } {  
  3.   pool pool_apache_irules  
  4.   }  
  5.   elseif {[HTTP::host] equals "blog.s135.com"  and [HTTP::uri] starts_with  "/read.php" } {  
  6.   pool pool_apache_irules  
  7.   }  
  8. }  
C代码 <embed type="application/x-shockwave-flash" width="14" height="15" src="http://yangzb.iteye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=when%20HTTP_REQUEST%20%7B%0A%26nbsp%3B%26nbsp%3Bif%20%7B%5BHTTP%3A%3Ahost%5D%20equals%20%22blog.s135.com%22%20and%20%5BHTTP%3A%3Auri%5D%20ends_with%20%22.htm%22%7D%20%7B%0A%26nbsp%3B%26nbsp%3Bpool%20pool_apache_irules%0A%26nbsp%3B%26nbsp%3B%7D%0A%26nbsp%3B%26nbsp%3Belseif%20%7B%5BHTTP%3A%3Ahost%5D%20equals%20%22blog.s135.com%22%20and%20%5BHTTP%3A%3Auri%5D%20starts_with%20%22%2Fread.php%22%7D%20%7B%0A%26nbsp%3B%26nbsp%3Bpool%20pool_apache_irules%0A%26nbsp%3B%26nbsp%3B%7D%0A%7D" quality="high" allowscriptaccess="always" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
  1. when HTTP_REQUEST {  
  2.   if  {[HTTP::host] equals  "blog.s135.com"  and [HTTP::uri] ends_with  ".htm" } {  
  3.   pool pool_apache_irules  
  4.   }  
  5.   elseif {[HTTP::host] equals "blog.s135.com"  and [HTTP::uri] starts_with  "/read.php" } {  
  6.   pool pool_apache_irules  
  7.   }  
  8. }  
when HTTP_REQUEST {   if {[HTTP::host] equals "blog.s135.com" and [HTTP::uri] ends_with ".htm"} {   pool pool_apache_irules   }   elseif {[HTTP::host] equals "blog.s135.com" and [HTTP::uri] starts_with "/read.php"} {   pool pool_apache_irules   } }


  九、创建虚拟服务器(Virtual Servers)
  ★创建虚拟服务器演示页面: http://blog.s135.com/book/f5/vs_create.htm

  1、以“四层”负载均衡模式创建Squid虚拟服务器:vs_squid
  在“Local Traffic→Virtual Servers”页面点击“create”按钮:
  ⑴、General Properties大类下:
  ①、Name栏填写:vs_squid(填一个英文名称)
  ②、Destination栏:选择Host,填写Squid服务器的外网虚拟IP(Virtual IP,简称VIP):61.1.1.3
  ③、Service Port栏填写:80

  ⑵、Configuration大类下:
  ①、Configuration栏选择: Advanced(选择高级模式,这一步很重要)
  ②、Type栏选择:Performance (Layer 4)
  ③、SNAT Pool栏选择:None(注意:这一步很重要,四层模式下,请确保此项选择为None)

  ⑶、Resources大类下:
  ①、Default Pool栏选择:pool_squid

  注意:F5的四层负载均衡由硬件芯片处理,不消耗CPU资源,能够处理更大的访问量。在四层负载均衡模式下,真实服务器的默认网关必须指向F5的自身内网IP,即192.168.1.2

  2、以“七层”负载均衡模式创建Apache虚拟服务器:vs_apache
  在“Local Traffic→Virtual Servers”页面点击“create”按钮:
  ⑴、General Properties大类下:
  ①、Name栏填写:vs_apache(填一个英文名称)
  ②、Destination栏:选择Host,填写Apache服务器的内网虚拟IP(Virtual IP,简称VIP):192.168.1.3
  ③、Service Port栏填写:80

  ⑵、Configuration大类下:
  Configuration栏选择: Advanced(选择高级模式,这一步很重要)
  ①、Type栏选择:Standard(标准模式,即七层负载均衡模式)
  ②、HTTP Profile栏选择:profile_http(注意:此项为None时,不能使用iRules规则,因此必须选一个。在此选择第六步创建的profile_http)
  ③、SNAT Pool栏选择:Auto Map(注意:在本文的架构中必须选择,原因如下)
   说明:当其中的一台Squid服务器“192.168.1.11”缓存未命中时,会去访问虚拟IP“192.168.1.3”。如果SNAT Pool选择默认值None,虚拟IP“192.168.1.3”后端的Apache服务器,看到的将是Squid服务器的真实 IP“192.168.1.11”。由于Squid和Apache服务器的IP地址属于在同一网段,Apache服务器将无需经过F5网关 “192.168.1.2”,直接通过交换机回包给Squid服务器“192.168.1.11”,这样虚拟IP“192.168.1.3”就会收不到回 包信息,HTTP请求无法完成。因此,需要选择Auto Map,进行地址转换,让后端Apache服务器看到的是F5的自身内网IP,回包给F5。

  ⑶、Resources大类下:
  ①、iRules栏:将Available列的“irules_apache”拉到Enabled列。
  ②、Default Pool栏选择:pool_apache_default

  ⑷、Apache虚拟服务器──vs_apache创建完成后,如需进行修改,在以下两个配置页完成:
  ★修改虚拟服务器演示页面1: http://blog.s135.com/book/f5/vs_properties.htm
  ★修改虚拟服务器演示页面2: http://blog.s135.com/book/f5/vs_resources.htm



  十、创建SNAT安全网络地址转换,让真实服务器能够访问互联网、对外发邮件
  ★创建SNAT演示页面: http://blog.s135.com/book/f5/snat_create.htm

  1、创建SNAT:snat_all_server
  在“Local Traffic→SNATs”页面点击“create”按钮:
  ①、Name栏填写:snat_all_server(填一个英文名称)
  ②、Translation栏选择:IP Address,并填写SNAT IP地址:61.1.1.4(此项也可以选择Automap,使用F5的自身外网IP作为SNAT IP)
  ③、Origin栏选择:Address List
  ④、Address List栏:①Type栏选择host,填写要访问互联网、对外发邮件的内网IP地址。②或者Type栏选择Network,填写要访问互联网、对外发邮件的网段和子网掩码。
  ⑤、VLAN Traffic栏选择:Enabled on...
  ⑥、VLAN List栏:将Available列的“internal”拉到Selected列。

  注意:真实服务器的默认网关需要指向F5的自身内网IP,即192.168.1.2,才能通过SNAT访问互联网、对外发邮件。

 

 

http://baike.baidu.com/view/468890.htm

http://www.citrix.com/English/ss/downloads/index.asp

 

Citrix ICA

 

Citrix Independent Computing Architecture ( ICA )技术已经被证明,能够通过整个企业网络来提供配置 Windows 、 UNIX 以及 Java 应用程序访问的强大的竞争优势,而不需考虑用户的位置、客户端硬件设备或者可用带宽的限制。

 

citrix XenServer5.6安装记录

http://darkranger.iteye.com/blog/743744

XenCenter配置

http://darkranger.iteye.com/blog/744075

思杰技术专家演示XenApp黄金版功能

http://www.citrix.com.cn/article/233/1973.aspx

vSphere 4上建立Citrix XenDesktop 3.0问题小结CZxend

http://www.igayu.com/Phpjiaocheng/2134.html

 

了解负载均衡Ctrix 会话保持 session同步(转)

http://www.cnblogs.com/qq78292959/archive/2012/12/27/2835950.html

一,什么负载均衡

一个新网站是不要做负载均衡的,因为访问量不大,流量也不大,所以没有必要搞这些东西。但是随着网站访问量和流量的快速增长,单台服务器受自身硬件条件的限制,很难承受这么大的访问量。在这种情况下,有二种方案可以选择: 
1,对单台服务器的硬件进行更新,由双核的变成四核的,内存加大等。 
2,增加服务器的台数,来分担服务器的负担。以实现增加网络带宽,增加服务器的处理能力的目的。

 

第一种方法可以理解为纵向发展,这种方法总是有限。 
第二种方法才是解决问题的正确选择 
实现负载均衡的方法,大至分为二个方向,一种是用软件来实现负载均衡,另一种是硬件实现负载均衡(包括结合硬件和软件)用软件来实现负载均衡,实现负载均衡的过程,自身也要消耗一些系统资源,响应时间增加。例如:LVS,nginx,haproxy,apache等这些基于应用层的负载均衡软件,适合那些访问量不是特别大的网站。如果像sina,163这样大访量的网站,用硬件来实现负载均衡是最明志的选择。

负载均衡的算法很多,有根据请求数来进行负载均衡的,有根IP来负载均衡的,有根据流量的等等。我经常会用的二种算法。

一个是根据请求数 
a,可以实现各台服务器都能比较平均分担客户的请求,其中一台服务器down掉的话也不会造成不好的影响。 
b,服务器间的状态要同步,如session,需要其他手段来同步这些状态。

一个是根据IP 
a,ip_hash算法可以把一个ip映射到一台服务器上,这样可以解决session同步的问题 
b,ip_hash也有不好的地方就是,假如其中的一台服务器down掉的话,映射到这台的服务器的用户就郁闷了。 
c,ip_hash容易导致负载不均衡的情况,现在河蟹政府对google的搜索关键词进行过滤,你会经常发现google打不开,但是过一会就好了。这让那些google的爱好者们郁闷不已,很多用户都到国外找代理去了,狗急跳墙,人急帆樯。如果这样的话,这些代理会被分到同一个服务器,会导致负载不均衡 ,甚至失效。

二,什么是会话保持,有什么作用

会话保持是指在负载均衡器上有一种机制,在作负载均衡的同时,还保证同一用户相关连的访问请求会被分配到同一台服务器上。

会话保持有什么作用呢,举例说明一下 
如果有一个用户访问请求被分配到服务器A,并且在服务器A登录了,并且在很短的时间,这个用户又发出了一个请求,如果没有会话保持功能的话,这个用户的请求很有可能会被分配到服务器B去,这个时候在服务器B上是没有登录的,所以你要重新登录,但是用户并不知道自己的请求被分配到了哪里,用户的感觉就是登录了,怎么又要登录,用户体验很不好。 
还有你在淘宝上面买东西,从登录=》拍得东西=》添加地址=》付款,这是一个一系列的过程,也可以理解成一次操作过程,所有这一系列的操作过程都应当由一台服务器完成,而不能被负载均衡器分配到不同的服务器上。

会话保持都会有时间的限制(映射到固定某一台的服务器除外,如:ip_hash),各种负载均衡工具都会提供这种会话保持时间的设置,LVS,apache等。连php语言都提供了会话保持时间的设定session.gc_maxlifetime会话保持时间的设定要大于session生存时间的设定,这样可以减少需要同步session的情况,但是不能杜绝。所以同步session还是要做的。

三,session同步

为什么要进行session同步,说会话保持的时候已经提到了。具体方法请参考web集群时session同步的3种方法

web集群时session同步的3种方法

在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是登录状态。所以本文就根据这种情况给出三种不同的方法来解决这个问题: 
1、利用数据库同步session 
在做多服务器session同步时我没有用这种方法,如果非要用这种方法的话,我想过二种方法: 
a,用一个低端电脑建个数据库专门存放web服务器的session,或者,把这个专门的数据库建在文件服务器上,用户访问web服务器时,会去这个专门的数据库check一下session的情况,以达到session同步的目的。 
b,这种方法是把存放session的表和其他数据库表放在一起,如果mysql也做了集群了话,每个mysql节点都要有这张表,并且这张session表的数据表要实时同步。 
说明:用数据库来同步session,会加大数据库的负担,数据库本来就是容易产生瓶颈的地方,如果把session还放到数据库里面,无疑是雪上加霜。上面的二种方法,第一点方法较好,把放session的表独立开来,减轻了真正数据库的负担

2、利用cookie同步session 
session是文件的形势存放在服务器端的,cookie是文件的形势存在客户端的,怎么实现同步呢?方法很简单,就是把用户访问页面产生的session放到cookie里面,就是以cookie为中转站。你访问web服务器A,产生了session把它放到cookie里面了,你访问被分配到web服务器B,这个时候,web服务器B先判断服务器有没有这个session,如果没有,在去看看客户端的cookie里面有没有这个session,如果也没有,说明session真的不存,如果cookie里面有,就把cookie里面的sessoin同步到web服务器B,这样就可以实现session的同步了。

说明:这种方法实现起来简单,方便,也不会加大数据库的负担,但是如果客户端把cookie禁掉了的话,那么session就无从同步了,这样会给网站带来损失;cookie的安全性不高,虽然它已经加了密,但是还是可以伪造的。

3、利用memcache同步session 
memcache可以做分布式,如果没有这功能,他也不能用来做session同步。他可以把web服务器中的内存组合起来,成为一个"内存池",不管是哪个服务器产生的sessoin都可以放到这个"内存池"中,其他的都可以使用。

优点:以这种方式来同步session,不会加大数据库的负担,并且安全性比用cookie大大的提高,把session放到内存里面,比从文件中读取要快很多。 
缺点:memcache把内存分成很多种规格的存储块,有块就有大小,这种方式也就决定了,memcache不能完全利用内存,会产生内存碎片,如果存储块不足,还会产生内存溢出。

四,总结

上面三种方法都是可行的 
第一种方法,最影响系统速度的那种,不推荐使用; 
第二种方法,效果不错,不过安全隐患一样的存在; 
第三种方法,个人觉得第三种方法是最好的,推荐大家使用;

转自:http://bbs.linuxtone.org/forum.php?mod=viewthread&tid=18212

 

end

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

siemens800

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值