我有一个受欢迎的WordPress的博客客户端偶尔短暂的交通高峰(当该网站是在国家电视台推广)。 博客已经托pipe在Amazon EC2实例上,我们正在探索使用Amazon的负载平衡器来帮助解决高峰。
两个关于这个问题的一般“大图”问题:
为了进行设置,我只需要从现有服务器创build一个机器映像(AMI),然后将其复制到一个新实例中,然后告诉负载均衡器拆分两个实例之间的stream量? (或者两个以上,我想…)
当我的客户需要编辑博客上的内容时,似乎需要一种方法将他们指向一个特定的“主”实例,以便他们可以使用该服务器上的WordPresspipe理工具,然后复制(rsync)内容从这个实例到其他实例,所以每个人都有相同的数据。 这是正确的方法吗?
任何其他技巧/build议将不胜感激。 我是亚马逊的负载均衡器的新手,所以我只是想在我深入了解具体情况之前,将自己的头脑放在大局之上。
更新:一些静态内容位于Amazon CloudFront CDN上。 我不熟悉APC,但现在正在研究(谢谢)。 WP-SuperCache是下一个要实现的列表。 我相信数据库是在一个单独的服务器实例。
谢谢Eric
既然你还没有安装WP Super Cache ,那真的应该是你的第一步。 安装非常简单,在负载情况下可以大大改善。 这个插件能够自动生成页面的静态html版本,并将它们提供给访问者,而不需要每次点击都启动PHP来dynamic生成每个页面。
如果这不能提供足够的性能提升,那么可能是考虑负载平衡的时候了。 标准负载平衡堆栈的基本架构如下所示:
---WP APP SERVER\ / \ / \ LB-----WP APP SERVER-----DB Server \ / \ / ---WP APP SERVER/
但是我对Wordpress不够熟悉,不知道它如何处理负载平衡。 为了正常工作,每个应用程序服务器不能在本地存储任何状态(会话等),而是必须使用数据库服务器来处理所有事情。 通过这种方式,客户端可以被引导到三个后端服务器中的任何一个,而不需要退出login的wordpress会话。
但是,在实现负载平衡的基础架构之前,您真的需要对服务器进行configuration并查看它遇到的瓶颈。 也许瓶颈实际上是在数据库服务器上。 也许你看到exception高的爱荷华州。 也许你正在耗尽可用内存,迫使内核跳入交换。 谁知道。 其中任何一项都可能会使性能显着下降,并且可以通过调整EC2实例来相当容易地修复其中的任何一个。