Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php TYPO3站点的缩放_Php_Apache_Content Management System_Typo3_Infrastructure - Fatal编程技术网

Php TYPO3站点的缩放

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个请求 基础设施会是什么样子 我知道系统扩展是一项高度独立的任务,具体取决于系统的实现情况,需要测试,但我需要首先指

一位客户要求我提供一个基于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可以是独立服务器,也可以是集群服务器
在这种情况下,性能优化非常重要

以下链接可供进一步阅读:


顺便问一句:你的客户真的希望有1000名并发访客,还是他只是想象会有那么多?;-)不,我真的不认为会有那么多,但这是合同的基础;-)在我看来,代理的必要性还没有得到证实,但信息很好,所以+1。这是一个太复杂的问题,无法给你一个有价值的答案。然而,我会首先关注优化TYPO3网站的性能,如果这还不够,那么我会关注问题的系统方面。所以谷歌的“打字3性能”。3个关键字可能会帮助您关注正确的内容:eAccelerator、静态文件缓存、memcached。不要使用eAccelerator,而是使用xCache或APC。静态文件缓存解释如下。不要使用memcached作为缓存后端,而是使用APC或Redis(取决于您的PHP设置)。@StephenKing:eaccelerator是PHP缓存,而不是数据库缓存。他应该另外使用xCache或APC以及memcached和Redis。我知道每个加速程序是什么。如果它使用错误的选项编译(并且PHPdoc注释被剥离),它将不再被维护,并且很容易引起麻烦。因此,使用(xCache | | APC)作为字节码缓存加上(APC | | redis)作为缓存后端。如果空间不足,Memcached作为缓存后端会导致问题。对不起,我的回答不好。不要试图篡改操作系统。从应用程序本身的良好设置(TYPO3+PHP)开始。@StephenKing:你应该学会阅读。我没有办法调整系统,但这在Linux中很常见,所以如果你有办法,为什么不呢?他在寻求一个web应用程序的解决方案。你为什么期望他编译服务器软件?也许他正在使用托管服务器、共享主机,或者有一个系统管理员,他可能会这样做。他可能会因为错误的TYPO3配置而破坏所有性能,但他无法通过优化二进制文件或ramdisk来修复此问题。@StephenKing:我已经修复了我的答案并删除了代理。为什么不使用nginx或lighttpd呢?阿帕奇是一个复杂的野兽。为什么是专用服务器?kms的价格要便宜得多?是的,Apache有点重,但它有很好的功能基础,多亏了它,可以进行调整以避免过载。可以使用nginx,是的。什么是“kms”,对不起?是打字错误。我是说KVM,看这里。你可以对客人有更多的控制权。你可以改变