Php TYPO3站点的缩放
一位客户要求我提供一个基于TYPO3的网站,其参数如下: -少量内容(约50页) -变化频率很小 -平均可用性约为95%/天 -20%的页面受到限制,仅在登录后可用 -对别致的typo3扩展或其他东西没有要求(只有typo3核心) -中等大小的页面 -仅包括有限的数字资产(图像等) 我需要构建一个基础设施,为多达1000个并发用户提供服务。假设平均思考时间为30秒。这将导致每秒33个请求 基础设施会是什么样子 我知道系统扩展是一项高度独立的任务,具体取决于系统的实现情况,需要测试,但我需要首先指出从何处开始(单个服务器,将组件分离到不同的服务器,…)Php TYPO3站点的缩放,php,apache,content-management-system,typo3,infrastructure,Php,Apache,Content Management System,Typo3,Infrastructure,一位客户要求我提供一个基于TYPO3的网站,其参数如下: -少量内容(约50页) -变化频率很小 -平均可用性约为95%/天 -20%的页面受到限制,仅在登录后可用 -对别致的typo3扩展或其他东西没有要求(只有typo3核心) -中等大小的页面 -仅包括有限的数字资产(图像等) 我需要构建一个基础设施,为多达1000个并发用户提供服务。假设平均思考时间为30秒。这将导致每秒33个请求 基础设施会是什么样子 我知道系统扩展是一项高度独立的任务,具体取决于系统的实现情况,需要测试,但我需要首先指
有什么想法吗?我会把它放在一个单独的专用服务器(或指定的VPS)上,但可能会将所有静态资产放在第三方CDN上,这样您就可以专注于动态内容。我不知道Typo3,但看不出有什么理由不能将数据库放在同一台服务器上,以满足这种级别的使用——肯定有各种缓存选项。或者考虑一个云服务器,所以如果你需要更多的OMOH,只需添加更多的资源。 编辑:我不认为现在就建立一个可扩展的架构是一个好主意,比如代理服务器等等。如果速度很慢,而你发现你真的无法应付一台机器,那么在那一点上扩大规模。我认为,考虑到您的预期流量,您可以使用更简单的体系结构。更简单的解决方案是。这会将静态页面保存为HTML,您的web服务器会通过重写规则(在Apache中是通过mod_重写)自动交付它们。这对于静态内容非常有效,应该已经允许您执行>100req/s的操作 更奇特的方法是使用。Varnish是一种反向代理服务器,它将网站内容保存在内存中,并可以在专用主机上运行。如果您正确地配置它(发送正确的缓存头!),它可以为您提供线速度(大约百万个请求/秒)。还有一个TYPO3扩展,当页面在TYPO3中更改时,它会清除清漆缓存。还支持edge side includes,例如仅从TYPO3检索用户特定的数据,并从varnish缓存使用页面的静态部分(除“欢迎用户Foo栏”之外的所有内容)
如上所述:不要忘记为您的资产配置正确的缓存头(Expires等)。这已经从您的web服务器上删除了一些负载。我将研究虚拟sserver或ksm以及良好的mysql和php配置。当我有一个ksm时,我会调整Linux并使用iptables进行流量整形。一个专用的根服务器很好,但是很昂贵。然后我会考虑将nginx或lighttpd web服务器与eaccellerator和memcache一起使用。如果这没有帮助,我会尝试使用优化标志编译php和mysql,或者尝试使用英特尔C编译器编译。ICC可以比gcc更好地优化C代码。如果服务器有很多ram,我会使用ramdisk。这是很有可能的,已经制作了类似的东西。您至少需要一台RAM大于等于8GB的专用服务器 如果我们谈论的是基础设施,那么最小的组合是:
- nginx/用于前部/负载平衡的清漆
- Apache HTTP服务器
- MySQL可以是独立服务器,也可以是集群服务器