高负载 Web 服务器设置

高负载 Web 服务器设置

我正在为一个约会网站准备服务器设置,该网站需要能够处理主站点每秒大约 5'000 - 10'000 个请求。

我的想法是这样做:

静态内容服务器(css​​、js、img):: Varnish 缓存 => nginx webserver

会员照片服务器:: [1] Varnish 缓存 => [n] nginx 网络服务器

会员视频和流媒体服务器:: 带有 Erlyvideo 或 Wowza 的 nginx 网络服务器(仅限付费会员)

Web 应用服务器 :: [1] nginx (如需要,可用作缓存) => [n] HipHop Web 服务器或 Apache mod_php nolog

这样可以吗或者有更好的方法吗?

我们使用自定义框架开发了 Web 应用程序并尽可能地进行了优化,结果是在使用 apache 和 mysql 的 3 年旧开发 Web 服务器上,每个站点的执行时间不超过 0.05 秒(无缓存)0.0009 秒(使用 apc 或 memcached)。

我不确定我们需要多少服务器才能用于网络应用程序以及数据库来处理这么多的请求。

答案1

在前面放一个负载均衡器,这样你就可以把服务器拉进拉出,分散负载[最好是所有类型的内容——静态和动态的]。[你可以使用 nginx 或 varnish 作为反向代理,如果这还不够——把集群低压开关柜或者哈普罗西服务器将负载分散到多个反向代理上。

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

将静态托管卸载到某些 CDN 是否有意义?

答案2

这听起来像是一个合理的设置,尽管您可能不需要静态内容的清漆。

最大的收获可能就在你忽略的部分:有多少视频流用户、框架的好坏以及数据库的负载如何。

通常,一个改变游戏规则的指标是您预计这 10K 页面会有多少登录用户。

判断所需硬件的唯一方法是针对生产就绪的软件堆栈运行适当的基准测试。如果可以,请逐步采用并不断优化瓶颈。

顺便说一句,如果您需要扩展或性能优化方面的帮助:我可以为您提供项目帮助。

相关内容