在大型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
延伸阅读
- http协议:Web前端-HTTP Cache-control/浏览器缓存
- 一次web木马解剖
- WEB服务器性能瓶颈分析
- 开源性能测试工具 - Apache ab 介绍
- 经典web架构.doc 值得参考
- 从地址栏输入到页面显示 -深入探究web运行机制(半草稿持续更新中)
- apache ab:web服务器压力模拟测试工具
- 网站开发人员应该知道的61件事
- wordpress 3.0.1开启多用户功能的具体操作方法步骤 (Warning: An existing WordPress network was detected./wp-config.php配置“above the line reading /* That’s all, stop editing! Happy blogging. */:”)
- 搞了老半天,凌晨1:22分,算是把数据导到wp里了(百度空间搬到wordpress)
- 开源营利之道:WordPress 是怎么盈利的
- wordpress 3.0.1终于出中文版了,支持并感激汉化工作者~~
- 为博客作语义网标记的权威指南
- wordpress 3.x 自由定义导航菜单,把任意链接加入到导航菜单,并自由修改菜单项顺序
- wordpress插件 wp-cumulus:把wordpress标签云显示成3D旋转效果(3D tags)
非常期待博主对此功能的修改与完善啊!
博主最逾附件的处理,现在做得怎么样了?
feng 回复:
3月 1st, 2012 at 20:30
没有做,呵呵,这仍然只是个设想。如果是访问量大非常、需要作分离的站点,应该都是独立服务器了;对于独立的文件服务器,可以使用反向代理实现,如squid、nginx。