咨询电话:023-88959644    24小时服务热线:400-023-8809
NEWS CENTER ·
新闻动态
关注中技互联 关注前沿

中技带您如何建立大容量Web界面的Email系统

发表日期:2012-06-18    文章编辑:山城阿修    浏览次数:15    标签:

  最近几年来,基于Web的免费Email系统十分盛行,当前,几个著名的免费Email网站根本上曾经成为大多数人的选择,树立单纯提供免费Email效劳的站点不再像以前那样遭到热烈欢送,但是提供Web界面的Email效劳曾经成为了一个商业站点为其注册成员提供的根本效劳之一。

  一个Email系统能够分为效劳器端和客户端,Web界面的Email系统则是将Email客户放在了Web效劳器端,因而Email系统所需求完成的是一个Web界面的Email客户。但是,由于这个Email系统请求用户数量较大,因而关于Email效劳器也有特定的请求。

  1、操作系统和用户数据库

  由于提供Web和Email效劳请求稳定性和性能特别高,因而普通都运用Unix作为效劳器的操作系统,例如hotmail运用FreeBSD和Solaris,国内163等站点也是BSD系列。但是,Unix的规范Email系统也不适宜用做这种大容量效劳。有的Unix系统,例如当前版本的Linux,其用户标识只要16位,因而用户数量最多只能有64K,即便Unix系统自身支持32位的用户标识,思索到性能要素,单台效劳器支持的用户数量也不要超越10万。

  为了具有支持更多用户的可扩展性,普通采用多台效劳器同时提供效劳,固然此时依然能够运用规范Unix用户作为Email用户,但思索到平安性、性能以及可管理性,普通采用非Unix系统用户来作为Email用户。而保管用户数据通常采用支持网络访问的数据库方式,普通常用的有LDAP、规范数据库、以及Email系统本人完成的用户数据库。其中,LDAP由于是提供目录效劳的规范,因而应该为最佳的选择,其常用的开放源代码完成为OpenLDAP;而规范数据库由于完成便当、可扩展性强,其中在Internet上最常用的为MySQL;此外,也有运用其他方式的完成。

  2、邮件的保管

  由于用户数量较大,如何保管用户的邮件就是一个十分重要的问题。传统Unix运用一个单一目录来保管一切用户的邮件,在用户数量较多时就极大的降低了文件系统的性能。只要运用多级目录,每个目录下的文件数量有限,才干降低翻开文件时的系统耗费,或者不再运用简单的文件来保管邮件,而采用某一种封装方式。完整采取数据库方式来保管邮件,由于用户邮件操作多为文件操作,且大小变化较大,因而会形成性能和存储空间上较大的糜费。

  由于用户数量宏大,并且也请求能被多台效劳器同时访问,必需采用存储空间较大的效劳器或效劳器集群来保管,经过光纤通道或者网络文件系统NFS来共享存储空间,使得每个用户的邮件存储途径关于每个效劳器都是分歧的。光纤通道是一种十分昂贵的处理办法,更为常用的是运用NFS,能够运用专用的NFS效劳器,如NetApp,或者运用带有RAID才能的PCUnix效劳器。

  当运用NFS共享存储空间的时分,一个十分重要的问题必需留意。由于NFS缺乏文件锁定机制,因而运用传统的用户邮件存储格式mailbox时,由于一切的邮件都保管在同一个文件中,因而停止邮件操作就必需加锁,以保证没有访问抵触,这就使得它不合适NFS存储方式。为理解决这个问题,qmail提出了Maildir存储方式,每个邮件作为单独的一个文件保管在用户个人的邮件目录下,就防止了加锁。因而,常见的免费邮件效劳器,普通都采用Maildir方式来保管用户的邮件。

  假如不打算运用共享文件系统的方式来保管用户的邮件,而打算让每个效劳器只访问其本人硬盘存储空间上的用户邮件,那么Email效劳器和客户端都需求停止定制,使它们能经过用户名来找到用户属于的真正效劳器,将访问任务交给这个效劳器完成。这种办法的缺陷除了所需求的改动较大之外,系统构造复杂之外,还由于效劳器是按用户停止分割的,不利于分担负载。其优点也是由于它不经过网络访问其他效劳器,因而能够采用恣意的邮件存储格式,包括采用强大的cyrus系统来保管邮件和提供效劳。

  3、邮件效劳器软件

  规范的Email软件,例如sendmail,固然也提供了一些包括aliases等办法,来支持非Unix系统用户,但是这些才能关于完成这种Email系统是不够的。为了支持这些Email用户,必需运用本人的Email效劳器软件。普通由于现有的Email软件都相当成熟,而且也都是开放源代码的软件,因而普通都是改动原有的Email软件,如sendmail、qmail等,使其支持特定的Email用户。完整重写一个Email效劳软件,从成熟性、稳定性来看并不可取。

  不论从性能上,平安性上思索,sendmail并不是理想的选择,而且由于qmail自身就支持Maildir,因而就成为了常用的Email软件的根底开发平台。但是需求留意的是,qmail运用GPL答应停止维护,因而基于qmail停止的任何改动,准绳上必需公开源代码,这对开发商业系统有一定障碍。当然能够经过不改动qmail,而改动相关的系统库函数,或者采用外挂的方式来绕过这个问题。另一个可选的根底Email软件是postfix,其自身就具备与LDAP、MySQL的接口,简直不需求改动就能作为邮件系统的一局部。

  4、Web客户端

  Web界面Email系统的另一个重要的局部就是Web客户端,这一局部的功用将好像个人计算机中的OutLook,担任给用户提供访问本人邮件的才能。由于Web访问自身是无衔接的,因而必需保证用户的平安性。根本上,平安性能够经过登录后树立的会话标识、暂时目录,并在程序中停止考证来保证。

  Web客户端必需以统一的方式来访问效劳器,能够经过直接文件访问的方式来取得用户的邮件,或者经过POP3、IMAP等规范协议来访问。关于运用网络文件系统来共享用户邮件的系统,经过直接文件访问的办法最为直接和便利,也不需求额外的耗费。而经过POP3、IMAP协议来访问效劳器,其直接的益处就是Web客户端和Email效劳器相别离,进步了系统平安性。

  当前,曾经有一些相当成熟的开放源代码的Web客户端软件,其中IMP是采用PHP来完成的,经过IMAP协议访问效劳器的Web邮件客户端软件。而WING则是采用Perl来完成的另一个Web客户端软件。这些开放源代码软件都相当不错,但是,将这些软件与本人的系统相集成,还会需求停止一定改动。此外,还应该遵照其答应请求,将改动的代码对外公开。

  5、完成负载平衡

  由于需求提供应大量的用户停止访问,因而单台效劳器不能满足这个需求,而必需要运用多效劳器的方式。除了依照功用性停止分割之外,如Web效劳器、Email效劳器以及文件效劳器相别离,还需求对一些资源慌张的效劳运用多效劳器停止负载平衡。固然当前一些商业厂家也提出了一些效劳器集群的计划,但常用的简单而有效的办法还是DNS循环解析,Web效劳重视定位和NAT负载平衡等几种。

  DNS循环解析是为同一个名字分配多个IP地址,它用在Yahoo等相当大的站点上,实践效果也相当不错。而Web效劳重视定位则是由Web效劳器随机产生位于不同效劳器上的真实页面URL,使不同的阅读器载入不同效劳器上的页面,运用它只能完成Web客户端的负载平衡。而NAT负载平衡则应用第四层交流机,使同样的恳求转向不同的效劳器,除了昂贵的交流机之外,也有一些软件能完成NAT功用,我曾对FreeBSD的natd停止了改动,使其能支持负载平衡,关于由于交流机价钱问题而不得不降低性能请求的运用者来讲,也是一种选择。

  6、实例剖析

  当前在国内最盛行的Web界面Email系统为网易公司的系统,它是采用qmail作为根本效劳器软件,再加以改动的系统。它采用NFS网络文件系统作为用户邮件存储空间,运用Maildir作为邮件存储格式,提供多级目录以支持大量用户。其Web客户端为他们本人完成的,经过直接访问用户邮件的方式为用户提供效劳。不思索其软件的小问题,这种完成方式是十分盛行且成熟的方式,大局部免费邮件效劳系统都是采用的这种形式。

  另一种方式是尽量应用已有的开放源代码软件,一种可行的计划是运用Postfix、OpenLDAP、cyrus和IMP来完成大容量Email系统,其中,主邮件效劳器运用Postfix查询LDAP效劳器,决议用户的真实邮箱地址,然后转发到真实邮件主机上,该主机经过LDAP查询确认,将邮件放入cyrus效劳器中,而IMP经过登录cyrus,运用IMAP访问用户邮件。当用户增加,一台cyrus效劳器不够时,能够将新添加的用户放置到新增加的效劳器上,只需求在LDAP效劳器设置相应的属性就能够了。在这种方式下,由于用户是严厉按效劳器分割形成了管理等艰难之外,这种构造自身较为复杂。但是,假如用户数量不是很多,那么就不需求运用多台cyrus效劳器和LDAP效劳器,复杂水平就大大降低,比拟合适中小型站点运用。

如没特殊注明,文章均为中技互联原创,转载请注明来自www.zjcoo.com
上一篇:web服务器安全设置配置-超全攻略,超详细~ 下一篇:已经是最后一篇了
相关新闻

CopyrightZJCOO technology Co., LTD. All Rights Reserved.    

渝ICP 备11003429号

  • qq客服
  • 公众号
  • 手机版
  • 新浪微博