【世博IT魔方】Nginx+Keepalived实现在线票务系统

网络
本文作者是某外企linux/unix系统工程师、项目实施工程师,在本文中所提到的软件及硬件均为真实项目所用到的,绝非纸上谈兵。

系统网络层级别的安全防护:

安全防护采用三层硬件防火墙+七层应用层防护来实现,系统均安装64位的Centos5.4;软件层分负载均衡层、web层、数据库层来说明,整套系统均关闭iptables防火墙,只映射Keepalived虚拟的VIP在最前端的华塞USG5000的外网80端口上,先将整套系统的安全级别提高到金融级别,再考虑负载均衡及其它事宜。

 

华赛USGUSG5000可以有效抵御高强度的网络攻击,而且同时可以保证正常的网络应用。其基于多核处理器的硬件构架,依靠多线程处理设计提供了十分优异的数据处理能力,完全可以为Internet服务提供商、大型企业、园区网、数据中心等具备大流量网络带宽用户提供高性能的安全防御手段;尤其是USG5000所具备的超高的“每秒新建连接数”,不仅可以实现对多种并行的网络应用实现快速响应,而且在大流量网络攻击的情况下,仍然可以防止网络业务中断给用户带来的损失。

它能有效地保障网络的运行,并且其独特的GTP安全防护功能可以为GPRS网络提供有效的安全防护;USG5000安全网关可以抵御大流量的DDoS攻击,为用户的业务系统提供DDoS攻击防护,依托优越的产品性能,能防范每秒数百万包以上的DDoS攻击,可支持对SYN FLOOD、UDP FLOOD、ICMP FLOOD、DNS FLOOD、CC等多种DDoS攻击种类的准确识别和控制,同时还能提供蠕虫病毒流量的识别和防范能力,结合华为赛门铁克专有ICA智能连接算法,保证在准确识别DDoS攻击流量的同时,不影响用户的正常访问,在复杂网络情况下实现真正的安全防护,是业界领先的DDoS防护设备,这功能也是我们关注的重点

天泰WAF-T3-500-L安全网关防火墙具备全面的攻击防御系统,可保证系统不受网络蠕虫/病毒和应用专用漏洞的攻击,并且大大缓解来自网络层和应用层DoS/DDoS攻击的影响。网关的NetShield™引擎在网络层对数据进行细致检查,彻底阻断来自网络层的潜在攻击。网关的WebShield™引擎在应用层对Web请求进行检查,辨别恶意内容并阻止其进入应用服务器。

其安全性能包括:

常见网络攻击防护——保护网络基础设施不受常见的来自网络层的攻击

DoS/DDoS 保护——识别网络层和应用层的DoS/DDoS攻击,缓解攻击对应用基础设施的影响(这也是我们关注的重点)

入侵过滤——通过在恶意蠕虫和病毒进入应用服务器前进行识别并拒绝,保护应用服务器不受侵袭。

SSL加密——应用内容在传输过程中都受加密保护,通过转移服务器复杂的加/解密任务将应用处理能力发挥到了极致。该功能保护敏感应用内容的安全,使其摆脱被窃取及被滥用的潜在威胁。

此外,能实现SQL注入攻击防护,钓鱼攻击,跨站脚本攻击防护及常见系统溢出防护等,这个也是我们比较关注的

服务器我们一般采用的是HP DL380G6(用于web)和HP DL580G5(用于数据库);在项目实施中发现HP DL580G5的性能确实彪悍,如果成本充分,可考虑都上此服务器;然后根据用途不同,内存的数量侧重点也不同;跟以往的老型号不同,用的双四核至强E74403.2GB的CPU,内存一般上的64GB或146GB。

租用机房:我们一般选择的是电信机房,也可考虑北京的双线通机房;出口带宽建议100MB,这些没什么好说的。

负载均衡层:

负载均衡层用的软件我们采用的是Nginx源码,二台Nginx用Keepalived作高HA;其实也可以用LVS/Keepavlied来实现;但我们在项目实施发现,Nginx在正则处理及location分发上效果比LVS更好(有些功能LVS实现不了),而且稳定性并不亚于LVS;在我从事的某些金融项目里,按客户的要求,1+2架构就很稳定的运行,当然也要配合Nagios实现监控。

如何处理session的问题:

① Nginx负载均衡器采用ip_hash模块,让访问的客户端始终与后端某台web建议永久性连接关系;

② 采用与PHPCMS类似的方法,将session写进后端的统一数据库里,例如MySQL;

WEB层:

页面同步

办法①可以采用rsync自动同步的办法。

办法②后端采用共用存储,读数据采用同一个存储设备。

这里说下要用的存储设备,我们用的比较多的是EMC CLARiiON CX4的FC磁盘阵列,很稳定,没发生过丢失数据库的问题;缺点是比较贵,会增加整个系统实施成本。

办法③在程序上实现动态的调取数据(如图片及文字)采用后端的唯一文件服务器,后期可考虑采用moosefs分布式文件系统来减小压力.

Web集群方面用的是Nginx+PHP5(FastCGI),这里说下并发的问题;在设计项目方案时,我们考虑的单台web上的并发值为9000,在局域网环境中通过LoadRunner及Webbench反复测试,单台Nginx的web通过9000并发没有问题,3台web即是9000*3=27000并发;但系统正式上线时发现,由于非游戏类网站,根本达不到27000并发,这只是一个理论值;但本着高扩展性的原则,还是尽量在硬件和性能上对单台web进行调优;本系统是9000万张票,预计并发在2000左右,此系统架构完全能胜任并发情况;另Nginx负载均衡器在高并发下的稳定性是无用置疑的,有此项目经验的人都应该清楚。

数据库层:

考虑到数据库层的压力情况,我提出三种主案:

① 采用最常用MySQL一主一从方案,在主上做好单机的优化,MySQL在压力和性能上的表现超过预期;

② 如果压力还是过大,考虑采用oracle的双机RAC方案,我们用此成功解决了某用户100W用户的OA系统数据库压力大的问题;

③ 可用用MySQL的一主多从方案,在web层上实行分布式memcache缓存,另还可考虑自己开发中间件技术,让真正的实现写功能的MySQL压力做小,从而达到数据库架构级调优的功能(这个也是游戏行业数据库采用减压的办法)。

【编辑推荐】

  1. 美国康普智能系统助力芜湖第二人民医院
  2. 析奥创利综合布线在世博会中国馆的应用
  3. Avocent助克拉玛依油田实现服务器微观环境实时监控
  4. 【世博IT魔方】H3C助力世博会园区监控系统
  5. Strix无线Mesh技术在铁路系统的应用

#p#

专家点评:张 琦——荣新IT培训中心资深讲师(评分:200分)

此文立意明确,从在线票务系统的安全防护角度,分析了世博在线售票系统中存在的安全隐患和问题。并从数据库、负载均衡、Web集群等充分论证了在线票务系统服务器存在的安全威胁,也分别从这几个方面给出了具体解决办法。

遗憾的是,该文未涉及主要服务器的处理能力,这对于在线售票系统来说非常重要。

#p#

专家点评:杨 栩——博科公司(Brocade)高级技术顾问(评分:200分)

本文从安全性和服务器负载均衡两个方面详细阐述了票务系统的组网方案和技术,是一个可实施的成功案例,值得读者学习和借鉴。

个人觉得两套不同厂家的防火墙串接在网络里,无疑提高了安全性,但也给网络带来了复杂性、增加了故障点。另外如果对 每秒新建连接数和并发连接数要求高的话,建议采用专业的负载均衡硬件设备如F5、Brocade等。

#p#

专家点评:宋家雨——《政府采购信息报》IT周刊主编(评分:300分)

没有严密专业的安全措施作为保障,在线的票务系统你敢采用吗?因此,在一个简单业务应用的背后,有一个庞大的系统作为保障和支撑,千万不要忽视。

 

责任编辑:曹凯 来源: 51cto
相关推荐

2010-06-05 15:56:39

票务系统世博

2010-06-05 15:49:18

票务管理系统方案

2010-06-05 15:29:05

票务系统世博

2010-06-05 16:47:29

智能交通系统世博

2010-06-05 16:26:43

SOA架构售票系统

2010-06-13 14:37:09

世博IT魔方票务系统数据挖掘

2015-07-08 10:24:15

NginxKeepalived

2010-06-20 16:04:02

北塔软件

2010-06-05 14:38:04

IP智能监控系统H3C

2010-06-20 11:33:09

综合布线

2010-06-20 16:11:11

UIT视频监控

2010-06-05 18:32:12

视频监控系统

2010-06-10 13:17:06

IBM服务器世博

2010-06-05 14:56:10

广域联网监控世博

2011-11-28 21:01:03

NginxKeepalived高可用

2010-06-05 18:50:17

视频监控系统

2010-06-05 18:35:09

2010-06-05 15:22:53

视频监控无线接入

2010-06-05 18:23:15

2010-06-20 14:00:23

西蒙布线
点赞
收藏

51CTO技术栈公众号