高负载的Web服务器设置

我正在准备一个约会网站的服务器设置,需要能够处理大约每小时5-10000个请求/秒到主站点。

我的想法是这样做的:

服务器静态内容(CSS,JS,IMG)::清漆caching=> Nginx的networking服务器

服务器成员照片:: [1]清漆caching=> [n] nginx web服务器

服务器成员的video和stream媒体:: nginxnetworking服务器与Erlyvideo或Wowza(只付费会员)

服务器的Web应用程序:: [1] Nginx(作为caching,如果需要)=> [N] HipHopnetworking服务器或Apache的mod_php nolog

这是好还是有更好的办法?

我们用自定义的framewrok开发了web应用程序并尽可能进行了优化,结果是每个站点的执行时间在3年前的开发中不会超过0.05秒(无caching)0.0009秒(使用apc或memcached) web服务器与Apache和MySQL。

我不确定有多less服务器,我们将需要的Web应用程序和DB来处理这个数量的请求。

把一个负载平衡器放在它的前面,这样你就可以将服务器拉入和拉出,分散负载[最好适用于所有types的内容 – 静态和dynamic]。 [您可以使用nginx或varnish作为反向代理,如果这还不够 – 将LVS或haproxy服务器的集群分散到多个反向代理]。

确保您的dynamic内容生成器是无状态的,或者至less允许使用粘滞会话进行分区,以便您可以轻松地通过class轮投资增加容量。

也许这是有道理的卸载静态托pipe到一些CDN?

这听起来像一个合理的设置,虽然你可能没有静态内容的清漆。

最大的收益可能是你所掩盖的:有多lessvideostream用户,框架有多好/多less,以及数据库是如何加载的。

另外通常gamechanger指标是从这些10K页面中您所期望的login用户数量。

告诉你需要什么硬件的唯一方法就是对生产就绪软件堆栈运行正确的基准testing。 如果可以的话,逐步改进并不断优化瓶颈。

顺便说一句,如果您需要帮助扩展或性能优化:我可用于项目。