集群网站监测

网站监测  时间:2021-05-14  阅读:()
SoftwareEngineeringandApplications软件工程与应用,2013,2,118-123http://dx.
doi.
org/10.
12677/sea.
2013.
25021PublishedOnlineOctober2013(http://www.
hanspub.
org/journal/sea.
html)AnalysisandPerformanceEvaluationofWebServerExtensibleArchitectureImplementingClusterandLoadBalance*BingweiLiu1,QunhuiWu2,JunhuiDu3#1KaramayCityDrainageManagementOffice,Karamay2ShanghaiBunnyInformationTechnologyCo.
Ltd.
,Shanghai3SchoolofOptical-ElectricalandComputerEngineering,UniversityofShanghaiforScienceandTechnology,ShanghaiEmail:1445335630@qq.
com,#dujunhui110@sina.
comReceived:Jul.
2nd,2013;revised:Jul.
13th,2013;accepted:Jul.
21st,2013Copyright2013BingweiLiuetal.
ThisisanopenaccessarticledistributedundertheCreativeCommonsAttributionLicense,whichpermitsunrestricteduse,distribution,andreproductioninanymedium,providedtheoriginalworkisproperlycited.
Abstract:ConfiguringTomcatclustersbasedonApacheandNginxrespectively,andcomparingtheperformanceincludingTPS(TransactionPerSecond)andART(AverageResponseTime)underthesamenetworkenvironment,amoreextensiblestructurecombiningtheeffectivenessandresource-savingofNginxandtheflexibilityandpopularityofApacheisdesigned.
Finallytheanalysis,designandtheperformancetestoftheproposedwebserverclusteraredemonstratedsuperioronperformanceandpracticaloperation.
Keywords:ClusterandLoadBalance;ApacheHTTPServer;NginxHTTPServer;TomcatServer;ReverseProxyWeb集群负载可扩展性架构分析及性能评价*刘兵伟1,邬群辉2,杜军辉3#1克拉玛依市排水管理处,克拉玛依2上海浦理信息科技有限公司,上海3上海理工大学光电信息与计算机工程学院,上海Email:1445335630@qq.
com,#dujunhui110@sina.
com收稿日期:2013年7月2日;修回日期:2013年7月13日;录用日期:2013年7月21日摘要:本文通过对基于Apache的Tomcat集群和基于Nginx的Tomcat集群的配置,在相同网络环境下进行单位时间内处理请求数、平均响应时间等性能的测试,提出一种更具扩展性的Tomcat集群,既融合了Nginx高效节能特点,又具备Apache的灵活性和普适性优点.
通过分析、设计和性能测试,验证了这种Web服务器集群在性能和实际操作中的优越性.
关键词:集群负载;Apache服务器;Nginx服务器;Tomcat服务器;反向代理1.
引言Web服务器系统集群负载技术为系统容量及其可扩展性提供了良好的途径,它通过一定形式可以把一组服务器组织起来,对外提供更为强大的服务能力,也可以在同一台服务器上部署多个相同系统进行集群,充分挖掘服务器的潜力.
随着F5BIG-IP、Radware、CitrixNetScaler等硬件设备的大量涌现,可以说实现负载均衡并不是难事,但是这些硬件设备高*基金项目:国家自然科学基金项目(No.
61202376).
#通讯作者.
Copyright2013Hanspub118Web集群负载可扩展性架构分析及性能评价昂的价格[1]却往往让很多中小型网络公司或高校等事业单位不得不望而却步,因此负载均衡软件自然而然成为它们青睐的宠儿.
开始于20世纪90年代的Apache与诞生于2002年的后起之秀Nginx,分别以其优秀的高效性、反向代理功能和灵活的负载均衡策略等备受业界的广泛关注和设计研究[2,3].
然而相比于Apache,Nginx相关的可扩展性架构分析并不是很多.
本文从架构分析、设计实现和性能评价等方面介绍Apache、Nginx与轻量级应用服务器Tomcat可扩展性负载均衡的实现.
2.
Apache、Nginx与Tomcat服务器2.
1.
Apache服务器ApacheHTTPServer(即ApacheHTTP服务器,简称Apache服务器)作为Web服务器软件,是ApacheSoftwareFoundation(即Apache软件基金会)的一个开源项目,伴随Internet的出现而出现,目前依然是Internet中使用最多的Web服务器软件,可以说Apache代表了目前网络服务器的先进技术.
瑞典网站监测服务公司Pingdom于2012年5月发布了最近网页软件使用报告.
该调査结果显示,在全球排名最高的1万名网站中,开源软件的使用率高达75%.
Pingdom的调查结果显示,全球使用人数最多的网站服务器依然是ApacheHTTPServer,占到39.
8%;其次是俄罗斯公司开发的Nginx(发音同engineX),Nginx由IgorSysoev为俄罗斯最大的门户网站Rambler.
ru而开发[2];而作为非开源类服务软件,微软的IIS(InternetInformationServices,即互联网信息服务)市场占有率已降到14%.
ApacheHTTP服务器作为现今最流行的Web服务器端软件之一,以其功能完善、性能稳定、完全免费、源码完全开放等原因成为Web服务器的最佳选择.
2.
2.
Nginx服务器根据瑞典网站监测服务公司Pingdom发布的该网页软件使用报告显示,Nginx已然成为全球使用人数仅次于ApacheHTTPServer的第二大Web服务器软件,并且其使用数量呈日益增长的趋势,直逼Apache服务器市场.
Nginx以其高性能、稳定性、丰富的功能设置、简单的配置和资源消耗低等优点而闻名世界.
人们使用Nginx服务器主要使用它的两大特点:一是高并发访问,二是代理服务器Proxy,Nginx可以迅速解析静态文件,而对于动态语言实现的动态程序(如Servlet、JSP等)则传递到后台服务器(如Tomcat服务器等),从而实现了动态和静态网页解析的分离[3],提高效率,节省资源.
Nginx能够很好地解决服务器的C10K问题(网络服务在处理数以万计的客户端连接时,往往出现效率低下甚至完全瘫痪,即C10K问题),因为它的设计不像传统服务器使用线程处理请求,取而代之的是使用了一个更加高级的机制——事件驱动机制,而且是异步事件驱动结构[2].
NginxProxy是Nginx的特色功能,利用Proxy实现负载均衡,具有以下特色:1)功能强大,性能卓越,运行稳定;2)配置简单灵活;3)能够自动剔除工作不正常的后端服务器;4)上传文件使用异步传输模式;5)支持多种分配策略,可以分配权重,分配方式灵活[3].
2.
3.
Tomcat服务器ApacheTomcat服务器(简称Tomcat服务器),由Apache软件基金会下属的Jakarta项目开发,以其运行时占用的系统资源小、开源性、可扩展性、支持负载均衡与邮件服务等功能,而且不断的改进和完善更新,使得很多感兴趣的程序员都可以对其进行更改或者往其中注入新功能,因而深受广大程序员的喜欢.
Tomcat以轻量级应用服务器身份,在中小型系统或者并发性要求不是很高的场合下被普遍使用,是开发和调试JSP程序的首选.
Tomcat部分是Apache服务器的扩展,但它是可以独立运行的,所以当运行Tomcat时,它实际上是作为一个与Apache服务器独立的进程单独运行的.
Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外Tomcat还是一个Servlet和JSP的容器,Tomcat的默认模式就是一个独立的Servlet容器.
但是,Tomcat处理静态HTML的能力不如Apache服务器,这也正是将ApacheHTTPServer与Tomcat整合、集群的重要原因之一.
Copyright2013Hanspub119Web集群负载可扩展性架构分析及性能评价3.
基于Apache的Tomcat集群负载将Apache服务器与Tomcat集群的原因在于:提升服务器对静态文件(如html、图片、CSS等)的处理性能[4];利用Web服务器做负载均衡以及容错;无缝地对应用程序进行升级[5].
速度快、稳定性高,对一个Web网站来说是非常重要的,而这种Apache+"Tomcats"(Apache与多个Tomcat进行集群实现负载均衡)的结构(见图1)具有很高的性价比和良好的可靠性,不会因为某个或者某几个Tomcat宕机或程序升级导致用户访问不了,而能够完成这种功能的最好的HTTP服务器就是Apache服务器,因为它跟Tomcat的结合是最紧密和可靠的.
Apache负责静态资源的处理,而Tomcat完成JSP和Servlet等动态资源的处理,正如前面所说,原因在于Tomcat处理静态资源的能力不如Apache服务器.
在JK(TomcatConnector,即Tomcat连接器)[6]出现之前,Apache与Tomcat的整合通常采用mod_jserv(Jserv模块)作为Apache中的WEB服务器接口,来将客户端的请求从Apache重定向到Tomcat以建立Tomcat与Apache的联系.
然而由于使用mod_jserv会使Apache的配置比较复杂,且不能用于其它HTTP服务器上,只能用在Apache上,同时它还不能很好地支持SSL(SecureSocketLayer),因此采用这种方式来整合Apache和Tomcat会增加配置文件的复杂性,从而降低了灵活性.
因此JK应运而生,JK可以理解为Tomcat提供给HTTP服务器的插件,实现Tomcat与Apache等HTTP服务器之间的通信[7],其配置比mod_jserv要简单方便得多.
除了使用JK方式实现Apache和Tomcat的整合外,还有http_proxy和ajp_proxy连接方式等[8].
http_proxy方式利用Apache自带的mod_proxy模块使用代理技术来连接Tomcat.
http_proxy模式基于HTTP协议的代理,要求Tomcat必须提供HTTP服务,所以必须启用Tomcat的HTTPConnector.
ajp_proxy方式其实跟http_proxy方式一样,均由mod_proxy提供连接功能.
配置也是一样,只需要在访问时将http://换成ajp://即可,同时连接的是Tomcat的AJPConnector所在的端口.
相对于JK的连接方式,http_proxy和ajp_proxy浏览器ApacheWeb服务器JK插件Tomcat服务器AjpConnectorURL映射信息Figure1.
ApacheandTomcatintegrationprinciple图1.
Apache与Tomcat的集成原理连接方式在配置上是比较简单的,灵活性方面也非常出色.
但就稳定性而言则不如JK这样久经考验,因此,如果是应用于关键的互联网网站,最好还是采用JK的连接方式.
集群配置完成后,建立test_cluster测试项目,在项目的web.
xml中添加,distributable元素用来告诉Servlet容器(即Tomcat),程序将部署在分布式Web容器中,从而实现session的共享.
将动、静态文件分别部署,即将项目的动态文件部署到实现集群的2个Tomcat服务器的webapps目录中,而将静态文件部署到Apache的htdocs目录中,然后分别启动Apache和2个Tocmat服务器,打开URL:http://localhost/test_cluster/test.
jsp.
页面刷新,则依次会看到tomcat1、tomcat2出现,实现了负载均衡,多次刷新页面,看到session的ID号是相同的一个,说明session复制是成功的.
通过往输入框中分别输入名称为number,值为1的信息后,显示结果如图2所示,即为session中存储的属性.
页面刷新,看到该属性也得到了复制.
以上的测试说明,集群中的session已经共享,每个集群对于同一访问均有相同的session,而且session中存储的属性变量也得到了复制.
当关闭tomcat2,则只访问tomcat1,说明节点关闭时运行正常.
至此基于ApacheHTTPServer的ApacheTomcat集群负载基本完成.
4.
基于Nginx的Tomcat集群负载作为轻量级的HTTP服务器,Nginx与Tomcat集群负载的配置相比于Apache要简单得多,只需修改Nginx的主配置文件nginx.
conf,在http节点里添Copyright2013Hanspub120Web集群负载可扩展性架构分析及性能评价Figure2.
Testprojectexplorer图2.
测试项目浏览效果加:upstreamlocalhost{#定义反向代理及后台服务器的负载均衡设备IP及状态,其中weight为分配权重,weight越大,负载的权重就越大.
除了weight参数外,还有其它,如down表示当前的server暂时不参与负载;backup表示其它所有的非backup的机器down或者忙的时候,请求backup机器,所以这台机器压力会最轻.
Nginx还支持多组的负载均衡,可以配置多个upstream来服务于不同的Server.
serverlocalhost:11080weight=1;serverlocalhost:12080weight=1;}location/{indexindex.
htmlindex.
htm;if(!
-e$request_filename)#在缓存中找不到的文件就会通过下面的proxy_pass去后台服务器查找,并且还会保留在本地的缓存中{proxy_passhttp://localhost;break;}}#对网站的动态程序设置参数location~\.
(jsp|do|action|servlet)${proxy_set_headerHost$host;proxy_set_headerX-Forwarded-For$remote_addr;proxy_passhttp://localhost;}#其中proxy_passhttp://localhost用于指定反向代理的服务器池;proxy_set_headerHost$host表示当后端Web服务器上也配置有多个虚拟主机时,需要用该Header来区分反向代理的主机名;proxy_set_headerX-Forwarded-For$remote_addr表示如果后端Web服务器上的程序需要获取用户IP,就从该Header头获取.
#对网站的图片、Flash、JavaScript、CSS、静态HTML等静态文件进行web缓存location~.
*\.
(gif|jpg|jpeg|png|bmp|swf|js|css|html|shtml)${expires30d;}为实现动态文件与静态文件分开处理,我们依然将项目的动态文件(JSP、Servlet等)部署到这两个Tomcat服务器的webapps目录中,而将静态文件部署到Nginx的html目录中,以此来实现动静分离,提高效率,节省资源.
测试项目启动后和Apache下的Tomcat集群负载相类似,session依然得到复制,运行如图3所示.
至此Window下Nginx+"Tomcats"的简单集群负载配置结束.
在Nginx下,关于Tomcat的Session问题通常是采用Memcached[3,9],或者采用nginx_upstream_jvm_route模块[9,10](它是一个Nginx的扩展模块,用来实现基于Cookie的SessionSticky的功能),如此则涉及到Nginx的优化[11]、Tomcat的优化、Apache的优化[12]等,本文只是实现基于Apache、Nginx的Tomcat可扩展性集群负载分析及其性能比较,故此不涉及优化方面的研究.
5.
基于Apache与Nginx的Tomcat集群鉴于Nginx的优秀性能,特别是在处理静态文件和反向代理所表现出来的良好性,使它结合功能完善、模块众多、可扩展性更强的Apache,来实现基于Nginx+Apache的Tomcat集群负载均衡也不失一条实际的解决方案.
具体的方法还是使用Nginx的反向代理,让Apache运行在后台,而Nginx运行在前台.
为了避免端口冲突,需要将Apache端口号从原有的80修改为其它端口,如9090即可.
6.
性能比较及分析OpenWebLoad是一款自由的开源系统,在Windows和Linux操作系统上均可使用.
它可以在服务器上抛出大量请求,查看服务器处理请求的准确率,使用数量可变的连接,发送尽可能多的请求,每一秒发送报告,见图4操作显示界面.
Copyright2013Hanspub121Web集群负载可扩展性架构分析及性能评价Figure3.
Implementsreplicationofsessionattribute图3.
Session属性实现复制Figure4.
PerformancetestingusingOpenWebLoad图4.
使用OpenWebLoad进行性能测试从表1的数据看出,无论是基于Apache的Tomcat集群,还是基于Nginx的Tomcat集群,当并发连接数很少时,每秒处理的完整请求数(TPS)较低,然而响应时间较短;当并发连接数太多时,每秒处理的完整请求数(TPS)较高,但响应时间较长.
对于两种集群来说,各自的并发连接数可以取得一个合适的中间值,使得每秒处理完整请求数和平均响应时间均比较合适.
但是对比基于Apache的Tomcat集群和基于Nginx的Tomcat集群,我们可以看到随着并发连接数的增加,前者性能急剧下降,当并发连接数达到400时已经受到了瓶颈限制,TPS值已经为0,即用户已经无法访问了.
而后者并没有受到此限制,经测试其并发连接数可以达到1000多.
从表2的数据可以看出,基于Apache与Nginx的Tomcat集群,随着并发连接数的增长,每秒处理的完整请求数(TPS)在短暂的增长之后下降,而平均响应时间持续增长.
整体性能较之基于Apache的Tomcat集群和基于Nginx的Tomcat集群,优于前者,略逊与后者.
Table1.
Nginx+TomcatwithApache+Tomcatclusteringperformancetest表1.
Nginx+Tomcat与Apache+Tomcat集群性能测试性能测试1测试2指标ApacheNginxApacheNginx并发连接数10100每秒处理完整请求数(TPS)287.
14283.
94281.
69339.
30平均响应时间33ms34ms338ms280ms性能测试3测试4指标ApacheNginxApacheNginx并发连接数300400每秒处理完整请求数(TPS)124.
25316.
180301.
67平均响应时间981ms384ms0393msTable2.
Nginx+ApacheTomcatclusteringtoachieveperformancetest表2.
Nginx+Apache实现Tomcat集群性能测试性能指标测试1测试2测试3测试4并发连接数10100300400每秒处理完整请求数(TPS)282.
72315.
38293.
65290.
00平均响应时间35ms302ms402ms417ms7.
结论Nginx对系统资源消耗少、允许高并发访问、配置简单,使它相对于Apache大有取代之势.
从本文的实验性能对比来看,基于Nginx的Tomcat集群实现负载均衡的效果确实要远远好于基于Apache的Tomcat集群.
但是Apache现如今依然是全球使用人数最多的网站服务器,凭借多年的发展,其功能很完善,模块众多,因而想一夜之间将Apache切换到Nginx不切合实际.
所以我们可以使用Nginx、Apache的混合环境,一方面可以根据实际的应用需求来逐步使用Nginx替换Apache,另一方面可以在现有基础上实现Nginx+Apache的集群负载,从性能测试结果看到这种基于Nginx与Apache的Tomcat可扩展性集群负载效果也很不错.
参考文献(References)[1]刘振宇.
利用Nginx实现网站负载均衡[J].
中国管理信息化,2012,15(16):96.
[2]张宴.
实战Nginx:取代Apache的高性能Web服务器[M].
北Copyright2013Hanspub122Web集群负载可扩展性架构分析及性能评价Copyright2013Hanspub123京:电子工业出版社,2010:5-6.
[3]陶利军.
决战Nginx:高性能Web服务器部署与运维[M].
北京:清华大学出版社,2012:1,159-190.
[4]刘薇.
基于J2EE架构的分布式静态页面生成分析与设计[J].
福建工程学院学报,2010,8(1):90-93.
[5]孙仁鹏.
Tomcat与Apache集成的研究[J].
电脑编程技巧与维护,2011,14:6-8.
[6]刘尚旺,何东健,闫艳.
Tomcat与IIS或Apache服务器集成的应用研究[J].
计算机工程与设计,2009,30(10):2543-2546.
[7]郝海峰,徐海峰,叶俊.
基于Windows平台的JSPWeb服务器架设[J].
计算机与数字工程,2007,35(8):68-70.
[8]王江伟.
Apache服务器配置与使用工作笔记[M].
北京:电子工业出版社,2012:1-5.
[9]吴翔毅.
Nginx在校园网络中的应用研究[J].
福建电脑,2009,(7):103-104.
[10]C.
Nedelcu著,陶利军译.
学习NginxHTTPServer(中文版)[M].
北京:清华大学出版社,2012:103-105.
[11]X.
N.
Chi,B.
C.
Liu,Q.
NiuandQ.
X.
Wu.
WebloadbalanceandcacheoptimizationdesignbasedNginxunderhighconcur-rencyenvironment.
IEEE,2012:1029-1032.
[12]J.
Zhao,K.
S.
Trivedi.
Performancemodelingofapachewebserveraffectedbyaging.
IEEE,2011:56-61.

SugarHosts糖果主机,(67元/年)云服务器/虚拟主机低至半价

SugarHosts 糖果主机商也算是比较老牌的主机商,从2009年开始推出虚拟主机以来,目前当然还是以虚拟主机为主,也有新增云服务器和独立服务器。早年很多网友也比较争议他们家是不是国人商家,其实这些不是特别重要,我们很多国人商家或者国外商家主要还是看重的是品质和服务。一晃十二年过去,有看到SugarHosts糖果主机商12周年的促销活动。如果我们有需要香港、美国、德国虚拟主机的可以选择,他们家的...

远程登录VNC无法连接出现

今天有网友提到自己在Linux服务器中安装VNC桌面的时候安装都没有问题,但是在登录远程的时候居然有出现灰色界面,有三行代码提示"Accept clipboard from viewers,Send clipboard to viewers,Send primary selection to viewers"。即便我们重新登录也不行,这个到底如何解决呢?这里找几个可以解决的可能办法,我们多多尝试。...

hostkvm:7折优惠-香港VPS韩国VPS,8折优惠-日本软银、美国CN2 GIA、新加坡直连VPS

hostkvm本月对香港国际线路的VPS、韩国CN2+bgp线路的VPS正在做7折终身优惠,对日本软银线路、美国CN2 GIA线路、新加坡直连线路的VPS进行8折终身优惠促销。所有VPS从4G内存开始支持Windows系统,当然主流Linux发行版是绝对不会缺席的!官方网站:https://hostkvm.com香港国际线路、韩国,7折优惠码:2021summer日本、美国、新加坡,8折优惠码:2...

网站监测为你推荐
小学生fastreport2University163游戏ios文件127支持ipadipad连不上wifiiPad mini WiFi开关成灰色无法连接,怎么办x-routerX-Router这个软件有什么用fusionchartsFusionCharts连接数据库你是怎么解决的,能告诉我吗?谢谢啦win7如何关闭445端口如何关闭WIN7自动配置 IPV4 地址 169.254ipad上不了网ipad连上家里的无线却不能上网
cn域名 双线主机租用 鲁诺vps 淘宝抢红包攻略 阿云浏览器 plesk arvixe 建站代码 免费个人网站申请 韩国网名大全 空间出租 183是联通还是移动 网站卫士 多线空间 银盘服务是什么 东莞主机托管 永久免费空间 双线空间 建站论坛 主机游戏 更多