我将在一个事件的现场博客,并期待巨大的流量高峰。目前,我正在使用带有modphp的apache,它去年在繁忙的流量下死亡,我不希望这种情况再次发生。
我正在考虑为这个运行在wordpress上的博客设置一个单独的VPS。
我应该使用哪个http服务器?阿帕奇,莱特普德,还是尼吉克斯?
在重负荷下,哪种表现最好?
使用AJAX更新,内容将是非常动态的。
发布于 2010-02-11 00:02:12
Lighttpd或nginx可能是实现这一目标的正确方法。就个人而言,我会选择nginx。
不要忘记严重优化您的应用程序。使用memcached缓存查询结果。
进一步的优化可以通过为来自分离cookie自由域的映像、js和css提供服务。遵循指南中的技巧也会让你在路上过得很好。
您可以在with服务器(S)前面使用清漆缓存静态页面数据。如果您真的想全力以赴,请从CDN中为您的图像、js和css服务。
取决于您获得的流量(或期望得到的流量);您可能需要考虑多个前端的网络节点,在这种情况下,Varnish可以作为一个非常好的负载均衡器。
我以前说过,我还会再说一遍。如果您期望流量达到高峰,并且要求正常运行时间和没有中断,也许您可以看看亚马逊的EC2和AutoScaling产品。它可能比构建自己的解决方案更有效率,尤其是如果您不期望流量全年持续下去的话。
另外,您还没有说明您是使用VPS还是物理机器。我发现VPSes对于高流量站点来说很糟糕,因为经常存在IO争用问题,这会导致高IOwait时间。对于高可用性,你真的不能超过专用硬件,双NIC,冗余网络基础设施等.
一切都取决于你的预算,我想。
发布于 2010-02-10 21:51:24
Nginx或lighttpd是肯定的赌注。您可以将Apache配置为更有竞争力,方法是使用more模块来代替prefork。但是,这需要将php配置为使用requires等;这本身可能是一个聪明的想法。
我个人使用nginx和php一起运行wordpress,而且速度非常快。
无论您选择哪个web服务器,都可以进行一些优化。
测试在模拟负载下的设置,以确保它不溢出。
发布于 2010-02-10 22:43:25
我们以前有一个apache2设置,大约有200个vhost(每个客户端一个),它代理到4个负载平衡后端服务器中的一个。我们发现,无论是memory还是Pre叉,Apache2每个连接都使用了大量的未共享内存(20-30mbEA,大约400-500mb总数,仅用于前端!)(mpm-worker似乎根据maxclients将这个数字的倍数提高了一倍)我们没有RAM专门用于大量空闲的前端工作人员池,并且在机器上每周不断地达到最大负载。
然后我们将前端切换到nginx。我已经将其配置为接收最大4096个连接(类似于apache上的最大客户端),它使用的是30 to的ram。它继续运行,并在大量掉期条件下提供足够的响应。我们的最大同时请求几乎翻了一番。我们只在截止日期达到最大负荷,即使这样,我们也可以调整后端,以给予客户优先权。
事后看来,使用apache2作为负载均衡器/代理可能是不明智的,但这正是我们经过多年进化后的结果。我们显然已经长大了,nginx来救我们了。
请记住,这只是轶事证据,但是您会发现任何基于事件的服务器(lighttpd或nginx)都有类似的成功案例。
https://serverfault.com/questions/111708
复制相似问题