缩放TYPO3网站

时间:2012-01-31 12:52:51

标签: php apache content-management-system typo3 infrastructure

客户要求我提供一个基于TYPO3的网站,其中包含以下参数: - 少量内容(约50页) - 变化频率很小 - 平均可用率约为95%/天 - 20%的页面受到限制,仅在登录后可用 - 没有花哨的typo3扩展或其他东西的要求(只有Typo3核心) - 中等大小的页面 - 仅包括有限的数​​字资产(图像等)

我有要求构建一个基础架构,以便为多达1000个并发用户提供服务。假设平均思考时间为30秒。这将导致每秒33个请求。

基础设施怎么样?

我知道系统扩展是一项高度个性化的任务,具体取决于系统的实现和需要测试,但我需要先说明从哪里开始(单个服务器,将组件分离到不同的服务器,......)。 p>

有什么想法吗?

4 个答案:

答案 0 :(得分:2)

更简单的解决方案是EXT:nc_staticfilecache。这将静态页面保存为HTML,并且您的Web服务器通过重写规则自动传递它们(在Apache通过mod_rewrite的情况下)。这对于静态内容非常有效,并且应该已经允许您执行> 100req / s。

更加高级的方式是使用Varnish Cache。 Varnish是一种反向代理服务器,可将您的网站内容保存在内存中,并可在专用主机上运行。如果你正确配置它(发送正确的缓存标头!),它可以为你提供线速(几百万req / s)。还有一个TYPO3分机moc_varnish,例如在TYPO3中更改页面时清除varnish缓存。对边缘侧的支持也存在于例如边缘侧。仅从TYPO3中检索用户特定的数据,并使用清漆缓存中的页面的静态部分(除了“欢迎用户Foo Bar ”之外的所有内容......)。

如上所述:不要忘记为资产配置正确的缓存标头(Expires等)。这已经从您的Web服务器中删除了一些负载。

答案 1 :(得分:2)

很有可能,已经做了类似的事情。您至少需要一台带有> = 8GB RAM的专用服务器。

如果我们谈论基础设施,最小的组合是:

  • nginx / Varnish for front / load balancing
  • Apache HTTP Server
  • MySQL可以在独立服务器上,可以是群集的

在这种情况下,性能优化非常重要。

进一步阅读的一些链接:

答案 2 :(得分:0)

我将它放在一个专用服务器(或指定的VPS)上,但可能将所有静态资产保留在第三方CDN上,这样您就可以专注于动态内容。我不知道Typo3但是看不出为什么你不能在同一台服务器上使用你的数据库这个级别的任何理由 - 肯定会有各种缓存选项。或者考虑一下云服务器,所以如果你需要更多的功能,只需添加更多资源。

编辑:我认为构建可扩展架构并不是一个好主意,例如代理服务器和所有这些东西。如果它很慢并且你发现你真的无法应对一台机器,那么就要扩大规模。考虑到您的预期流量,我认为您可以使用更简单的架构。

答案 3 :(得分:0)

我会查看虚拟sserver或ksm以及一个好的mysql和php配置。当我有一个ksm时,我会调整Linux并使用iptables进行流量整形。一个专用的根服务器会很好,但它很昂贵。然后我会考虑使用带有eaccellerator和memcache的nginx或lighttpd网络服务器。如果这没有帮助,我会尝试使用优化标志编译php和mysql,或者我会尝试使用英特尔C编译器进行编译。 ICC可以比gcc更好地优化C代码。如果服务器有很多ram,我会使用ramdisk。