wordpress文件附件转移到另外服务器上实现性能提升/web与文件数据分离

在大型web架构里,通常会把web与文件分离在不同服务器上,以提升web系统的高效运行。
而wordpress,本身好像没有这方面的考虑,所以,但可以朝这方面努力,应该可以通过插件等机制实现。
以下是笔者刚想到的一个实现方案。
由于wordpress本身,添加文章后,其中引用文件都是以绝对链接的形式写在html里的,这点可以通过插件的形式,把其url域名替换成另一个域名。
另一个域名下并没有这些相应的文件,可以通过url重写将对不存在文件的请求重写的一个动态处理程序(一般都是php,当然也可以使用其它,如jsp等)上,该处理程序通过远程http请求(或使用ftp也可以)把源站点下的相应文件抓取,并存在在对应的位置上,路径结构与源站点完全一致。这样,就实现了两个站点,即源站点及文件镜像站点的数据同步。第一次请求(即上述的抓取过程),请求后,再通过web程序把抓取到的文件读取并输出给客户端,即要模拟对静态web请求的返回数据,让请求浏览器以感觉不到这其实是动态请求的文件。
这只是一个技术方案,目前并没有实施,如有兴趣,可以自行实施,或者与笔者联系。笔者也可能在尝试实施这一方案的实施。


这里是一个方案,基本上就是上文中“插件”实现的功能 http://tsov.net/separation-of-the-blog-and-accessories/
当然,下面的远程自动抓取并没有提到,更没有实现的了

————– 2011-03-20 ——————
周末,写了一个简单的代码,可以实现上述抓取功能,代码参看附件。其实这个“抓取”功能,应该通过apache的代理功能就可以实现,ngix等web服务器好像也有(个人对IIS还是有一定了解,没有这种功能~~xx的MS),但没有研究过。在学习php,所以使用php写一个相应功能的程序。对于使用虚拟主机的web站点,可以尝试一下。

讲一下可能参考的使用实例:使用比较小的虚拟主机、或者主机商对流量限制比较严酷,买了godaddy域名,就可获赠一个很大的虚拟主机,只是有广告。而广告只会附加到在html文档里,而对于图片、flash、音频视频是不可能带广告的,所以就可以把这些附件文件的“迁移”到godaddy虚拟主机上。使用这个方法,实际上只需要把文章内容里的文件地址修改到godaddy虚拟主机上,就可以了,不需要手工转移,自动化进行,省力。

代码并不完善,也没有使用说明,需要手工配置里面的代码。有兴趣的同学,可以自己看代码,当然前提是要有点php编程基础。这个代码将来可能会再做修改,请持续关注此文。http://www.path8.net/tn/archives/4217

源程序:点此下载源程序prx
2011-03-20

发表评论?

3 条评论。

  1. 非常期待博主对此功能的修改与完善啊!

  2. 博主最逾附件的处理,现在做得怎么样了?

    • 没有做,呵呵,这仍然只是个设想。如果是访问量大非常、需要作分离的站点,应该都是独立服务器了;对于独立的文件服务器,可以使用反向代理实现,如squid、nginx。

发表评论