我正在计划一个大型网站,其中包括许多静态资产(JS,CSS,图像和缩略图)在生成的页面。 该网站将使用TYPO3作为CMS(是客户要求)。
我想我可以通过使用两个服务器安装程序认真提高性能/页面加载时间。 一个服务器运行主应用程序(PHP),另一个运行静态文件,由apache的精简版或类似lighthttpd服务。
包括从文件服务器的js或css文件当然没有什么大不了的。 只需使用绝对URL http://static.example.com/js/main.js并完成它。
但是:该网站将有页面上的许多缩略图,例如产品图像。 所以我看到两个问题,当主应用程序试图创build一些图像的缩略图:
像products/some.jpg这样的原始图像被上传到静态文件服务器上,因此不会与尝试创build缩略图的PHP应用程序在同一台服务器上。
TYPO3将创build的缩略图写入预期位于同一服务器上的临时目录。 因此,数百个缩略图将被写入并且从与主应用程序位于同一服务器上的临时目录提供 – >静态文件服务器在这种情况下基本上是无用的,所有的缩略图将从主应用程序的服务器请求。
那么,我的问题是:如何克服这个缺点?
是否有可能将某些目录“符号链接”到另一台服务器 ?
因此,例如,如果PHP尝试用imagecreate("products/some.jpg")打开原始产品图像以创build缩略图,则产品文件夹实际上“指向”静态图像服务器上的产品文件夹? 我知道这样的事情可以用.htaccess来完成,但在文件系统级别上可以吗?
我要说的第一件事就是从mod_expires开始减less静态文件请求,然后添加mod_deflate来降低带宽。
只有一次,你真的看到严重的负载,然后开始分区到单独的服务器。
将静态请求移动到同一apache上的不同vserver(可能使用相同的文档根目录)应该是分区的第一步。
似乎没有人真的回答了实际的问题。
让不同的服务器处理对静态文件的请求与处理同一caching代理的所有请求明显不同。
有一个单独的静态文件服务器允许客户端并行处理更多的下载。
我也有兴趣在TYPO3轻松做到这一点的解决scheme。 虽然我不需要单独的机器上的静态服务器。 所以文件系统访问对我来说不是问题。