当前位置:Linux教程 - Linux业界 - 基于Linux的ICP网站

基于Linux的ICP网站

基于Linux的ICP网站
—赛迪网实例分析


赛迪网(www.ccidnet.com)是一个面向IT行业和用户的专业性垂直网站,分为赛迪信息网,赛迪商务网和赛迪咨询网。其中赛迪信息网采用纯Linux解决方案,采用的产品主要有Redhat Linux Server、Workstation、Powertools等。主体系统均安装高可用性易于扩充的集群系统,使用Apahce+Informix+PHP结构。网络结构示意图如图1所示。
Web 服务器
赛迪网的Web服务器使用最流行的Apache。Redhat Linux与Apache的经典组合目前得到了日益广泛的应用和专家的一致认可。特别在响应和处理请求的速度方面表现卓越。同时在高负载量的评测中也表现出色。由于七成以上的页面是动态内容,从数据库中提取数据动态生成,所以前段采用了PHP语言来设计网页。同时赛迪网的后台发布系统也使用PHP作为开发语言。为了保障网站的不间断运行,Web服务器使用集群结构,保障了整个网站在高负载下的动态伸缩和良好运转。
代理服务器
为了提高Web服务器的响应速度和效率,同时出于安全因素的考虑,在整个Web服务器集群的前段是能够起到加速和保护功能的代理服务器。赛迪网的代理服务器使用目前公认的效率最高,功能也最强大的squid软件。Redhat自带的squid好像有一些问题,建议直接去squid的站点下载最稳定版本(http://squid.nlanr.net/squid/)。真正同客户段打交道的是squid软件而不是直接和Web服务器通讯,对系统外的用户来说,真正的Web服务器是不可见的,这在很大的程度上保障了系统的安全性。出于负载均衡和易伸缩性的考虑,squid实际上也采用集群结构,由DNS服务器的查询轮转功能实现负载均衡。
集群服务器
什么是集群服务器呢?
1.集群服务器是用两个(或更多)的系统(节点)在一起工作,来提供相同服务或实现相同目的。
2.外面看来,整个看起来像一个系统。
3.集群服务器用来提高服务的稳定性和核心网络服务的性能。
实际上,集群服务器(即Cluster)只是一个比较笼统的概念,大家所熟悉的“并行计算”只是Cluster的一个方面,这方面的主要应用就是用低成本的“低档”电脑去做super computer的工作。Cluster分为下面几方面:
1.High-Availability (HA)
2.Load Balance
3.Scientific
1.HA用在不允许中断服务的场合。实际上是两台(或更多台)计算机通过一定方式互相监听,实现热备份。当其中Primary Server出现问题时,Standby Server能够自动立即接替工作,使用户感觉不出停机。在Primary Server恢复正常之后,Standby Server又会把工作还给Primary Server。表1给出了一个可用性级别的划分。
2.Load Balance应用在Web Server上比较多(尽管它支持很多别的协议如FTP、Telnet、Sendmail等,但用处最多的还是HTTP服务)。用户访问一个地址,但实际上后台是有若干台服务器在提供服务。而当服务请求达到饱和时,还可以很容易地再添加新的节点而不用停掉整个Cluster,实现所谓的“热插拔”,这也就是Cluster中的一个概念—Scalability(易扩展性)。而且,Cluster还会查询真实节点的情况,当某台真实节点没有响应时,就不再把任务分配到那里,直到这台节点恢复正常。
3.Scientific主要用于计算量大的场合,比如图像处理。由于赛迪网并没有这方面的应用,所以在此不深入讨论。
目前比较新的解决方案是HA Scalability/HA Load Balancing Clusters,采用这种方案的有:Resonate Central Dispatch、F5 BigIP、Cisco LocalDirector、TurboCluster Server、LVS(Piranha, UltraMonkey)。而这些方案中,最具价格优势的是TurboCluster和LVS。TurboCluster软件目前约20000元人民币,而LVS(Linux Virtual Server)则是完全免费的(而它的性能完全可以和上述产品媲美)!赛迪信息网使用的就是Redhat Linux自带的LVS软件Piranha。和传统方式相比较,LVS提供了4种分配方法(Load-balancing Methods)和3种转发机制(Traffic Forward Mechanism)。在4种分配方法中,我们使用的是比较简单DNS的轮转,用户可以根据自己的调研和分析,使用适合自身网站实际情况的其他方式,比如在路由器上把任务分给多台机器。前一种做法是完全随机的,它的优点是配置简单,管理方便,并行服务器可以位于互联网的任意位置上;第二种做法是固定的,两者都不会根据当时情况调整分配到真实节点上的任务量。3种转发机制中塞迪网使用了最常见的也是最容易配置和管理的VS-NAT。这种方式只需要几个公有IP,真实节点都在内部使用私有IP。而且真实节点可以是任何系统(包括NT),缺点是Router(Switcher)是整个系统的瓶颈,因为所有的数据都会通过Router。一般真实节点数为20台左右时将会有出现瓶颈,但对赛迪网这样的大型专业网站已经够用了。由于集群结构良好的伸缩性,在出现瓶颈时可以迅速增加服务器数量而系统的整体结构不必有大的改变。通过集群的应用,充分保障了赛迪网的高负载量,高度稳定性和快速响应速度。见图2所示。
数据库服务器
数据库服务器产品,赛迪网采用的是Informix的动态服务器(IDS)。Informix动态服务器是一种强有力的多线索数据库服务器,具有超群的可伸缩性、易管理性和高效运行的能力。 Informix动态服务器的基础,是Informix领先于业界的动态可伸缩体系结构(Dynamic Scalable Architecture,简称DSA)。DSA是适用于在整个企业范围内提供高度并行处理能力的体系结构,不仅适用于桌面系统和部门级系统,而且也适用于数据中心的各类应用。
Informix动态服务器有以下特点:
·动态服务器的高效运行特性,能在较短的时间内处理更多的数据,因此能快速地得到关键性业务问题的答案。
·动态服务器的可伸缩性,使客户很容易根据不同要求扩展和剪裁自己的数据库,同时又能满足性能要求并使企业在IT方面已作出的投资得到保护。
·动态服务器的可扩展性,使数据库能够管理不断出现的新的信息类型和新的业务逻辑。因此,客户可以灵活地按照自己的业务要求调整自己的数据库,以适应市场的动态变化并对客户的多种要求主动地和及时地作出回应。
数据库服务器是网站服务器的核心,在赛迪网不间断的运行的一年中,我们应用的Informix数据库经受了严峻的考验,即使在访问的峰值期间,Informix数据库也出色地完成了客户请求,没有发生任何宕机或死锁现象。
邮件服务器
赛迪网是使用Qmail来构建自己的邮件系统,这是一种可以完全替代Sendmail-binmail体系的新一代功能强大的UNIX邮件系统。Qmail有以下一些优点:
1. 安全—Qmail将E-mail处理过程分为多个分过程,尽力避免用root用户 运行。同时Qmail也禁止对特权用户(root,deamon等)直接发信。
2. 可靠—Qmail的直接投递保证E-mail在投递过程中不会丢失。Qmail同时支持新的更可靠的信箱格式Maildir,保证系统在突然崩溃情况下不致破坏整个信箱。
3. 高效—在一台运行于PIII的Linux上, Qmail每天可以轻松地投递几十万封信件而不发生错误或异常。由于业务需要,赛迪网每天有极大量的邮件需要投递,而Qmail出色地完成了这一任务。非常令人满意。
4. 简单—Qmail要比其他的Internet E-mail系统小得多。Qmail通过统一的向前机制完成forwarding、alias和maillist等功能,Qmail使用简单高效队列来处理投递。Qmail-smtpd可以由inetd启动,节省了一定资源。
网站发布系统
赛迪网的网站发布系统,主要使用PHP作为编程语言,纯Web界面,编辑通过它与内部的服务器进行交互,当确认无误时,内部服务器会自动与网站的真实服务器进行同步,保障了数据的正确性。同步软件我们采用Redhat自带的rsync软件。rsync是个出色的镜像工具,当服务器上的文件被删除时它能相应地删除本地文件。
网站的负载及流量监控
网站的负载及流量监控对ICP来说,是非常重要的。通过对这些数据的分析,网站的管理员能够及时准确地把握网站的运行状况,根据这些分析结果,管理员可以量身定制网络结构和最适合的软硬件产品。同时由于网站的访问量经常出现峰值现象,并具有一定的不确定性,所以分析和掌握这些数据对网站业务制订具有相当的参考价值。Linux同许多UNIX一样,提供了很多小巧的工具用于网站负载和流量监控,诸如top、netstat等。赛迪网使用的是另一个出色的工具—ntop。
ntop是用于显示网络和系统使用情况的软件,并和现在流行的UNIX 的命令相似。ntop 以libpcap 为基础,用一种紧凑的方式写成。ntop 实际上是一个具有包嗅探器功能的软件,它提供了强大并具有相当灵活性的界面,同时具有top软件的功能。由于ntop 在功能性上发展极快,已经不能将其简单地看成是网络扫描器。表2是它的使用界面之一。
安全因素的考虑
网络安全和系统安全是一个非常重要的课题,特别对网站来说,如何保护系统和数据不受非法入侵者的破坏是最需要考虑的因素之一。很小的失误可能造成致命的后果。基本上你运行的服务后台越多,你就可能存在的安全漏洞也越多。很多人认为开放源码的操作系统具有更大的安全隐患,我们认为恰恰相反。如果配置得恰当的话,Linux本身是非常安全可靠的。实际上,如果在Linux系统中有某个安全缺陷,由于Linux的源码是开放的,有成千上万的志愿者会立刻发现并修补它。
赛迪网在网络安全方面做了大量的工作,除了制订严格的管理制度,并请专业网络安全公司协助防护外,还利用Linux的特性和基于Linux的各种安全产品对赛迪网的安全进行了强化。
在网络方面,我们使用华安公司为赛迪网量身定做的Linux入侵监测系统(LIDS),它能够对网络数据进行一定程度上的分析,及时发现可疑的攻击行为并通知网络管理员。在很大的程度上降低了系统被破坏的风险,防患于未然。
在系统方面,Linux缺省的安全等级是0,通过修改内核源码linux/kernel/sched.c中的securelevel,可以将其提升到1,就可以在一定的程度上提高系统的安全性。当Linux的安全等级为1时,它会禁止修改ex2fs系统中的文件的immutable和append-only位,同时禁止装入/移除模块。同时我们使用了许多基于Linux开发的安全工具:使用chroot来限制服务的目录层次,即使某些服务存在漏洞而导致被侵入也不会造成整个系统的崩溃;使用Tripwire对敏感数据和文件进行定时校验,确认是否被改变和破坏;对一个大中型站点来说,分析和察看系统和各种服务生成的日志是一项非常繁重的工作,使用logcheck可以对系统日志进行过滤和分析,察看可疑攻击行为和各种异常现象,帮助管理员及时处理问题;使用ssh等工具替换Telnet等不安全服务;Redhat Linux默认允许所有的请求,用TCP_WRAPPER增强站点的安全性是举手之劳,通过TCP_WRAPPER,可以对网络连接进行严格的限制,指定哪些用户可以使用哪些服务,这可以在很大的程度上起到防火墙的功效。
诸如此类,全球的Linux爱好者和研究人员开发了大量的安全工具可供Linux用户使用。实际上,只要网站管理员留心安全问题,及时修补系统问题,Linux本身就能够提供非常良好的安全环境,企业级的用户完全有理由信任和依赖Linux构筑的安全的站点平台。
硬件情况
对于Linux来说,即便是在低档的服务器上也能够发挥出色的性能。这也是Linux的一个很大的优势,通过集群技术,将若干台普通的PC服务器(Pentium III 550MHz以上,512MB以上内存,几十个GB的SCSI硬盘)联结起来,性能甚至超过一些名牌的中高档服务器,而价格的优势却非常明显。代理服务器和数据库服务器的内存要求比较大,建议使用1GB或2GB的服务器专用内存,而Web服务器由于前端有代理服务器加速,硬件要求相对较低,重要的是稳定性。邮件服务器相对来说对内存的大小和硬盘的I/O速度要求都比较高。赛迪网的邮件服务器也是由多台服务器协作工作的,这种分布式的结构有助于分担单个服务器负载。当然对所有的服务器来说,速度快,工作稳定的网卡都是必须的,它能大幅度地减少网络瓶颈,提高整个系统的工作效率。
结束语
Linux的发展动力得益于Internet的发展,所以Linux在服务器方面的表现是非常出色的,大部分网络功能内置,TCP/IP协议包含在核心层。在美国,根据Infoheads的调查,26%的Internet接入服务提供商使用Linux,并且比例还在迅速提高。一个Linux服务器的购买和维护成本都相当低,但是却提供了很好的性能和广泛的功能。Linux对硬件的要求比其他操作系统都要低,扩展系统功能也很便捷,并且当硬件升级时,系统性能也会相应提高。通过大量应用实践证明,Linux作为企业级服务器是高效的和安全的。另外根据新浪网的消息, Red Hat 公司的首席财务官凯文-汤姆森称,该公司发展势头良好,有望在明年年底实现盈利。他向分析家重申了该公司早些时候公布的 2002 年收入增长指导方针。汤姆森说:“我们致力于在 2002 财年中使公司收入至少增长 85%,也就是 1.57 亿美元,总的利润增长幅度达到 60%,在公元 2001 年底实现盈利。”这意味着,在不远的将来Redhat Linux将会取得更多的资金支持和业界青睐,从而得到更好的发展。同时,Linux是开放源码的,这使它在全球有大量的爱好者,在更新速度和技术支持方面,任何其他的操作系统都无法与之相比。目前,越来越多的大公司宣布支持Linux,原来被认为是中低端解决方案的Linux正在逐步占领高端市场,而且步伐越来越迅速。可以预见,Linux的解决方案将会更加完善和高效,并最终将成为潮流。