平时瞧见大型网站拥有自己的图片服务器,偶们这种小博客站长是那样的羡慕啊,所以Epile没事就百度Google图片服务器的资料,小研究了一些,还是找到了一些曲折的方法可以让小站图片也来个独立,不过有些时候为了得瑟一下而独立反倒是牺牲了网站的性能。
先指名一些定义:
- 应用服务器:即我们的内容网站,就像我这个博客http://epile.org/blog/
- 图片服务器:即存放图片的网站,就像我博客的图片存放在http://img.epile.org/
方案一:
- 环境:应用服务器和图片服务器分别为两个不同的空间,应用服务器支持动态语言(如PHP)或可安装程序,图片服务器有独立的FTP;
- 方案:图片上传到应用服务器后,通过PHP或同步软件把图片同步到图片服务器,文章里采用图片的绝对路径;
- 好处:图片服务器只需要是静态服务器即可,减少了Cookie和PHP,效率会高一点;
- 缺点:需要写动态语言(如PHP)代码;
方案二:
- 环境:应用服务器和图片服务器为同一台服务器,空间支持子域名绑定或可建多网站;
- 方案:直接把图片服务器的域名绑定到图片目录,文章里采用图片的绝对路径;
- 好处:对于小网站来说很方便,基本不需要改动程序,像Wordpress只需绑定图片目录后在后台设置图片路径即可。本博客就是采用这种方法,图片服务器为img.epile.cn;
- 缺点:应用服务器和图片服务器必须为同一台服务器;
方案三:
- 环境:应用服务器和图片服务器均支持PHP;
- 方案:在图片服务器上架设图片程序,负责图片的上传并提供API接口,供文章系统调用;
- 好处:暂无;
- 缺点:需要写代码整合API,可能需要自己写图片程序;
方案四:
- 环境:应用服务器和图片服务器均支持PHP,图片服务器支持URL Rewrite;
- 方案:图片上传到应用服务器后,直接在文章中使用图片服务器的地址。图片服务器通过URL Rewrite把所有图片访问Rewrite到一个PHP文件,PHP文件在第一次访问的时候从应用服务器把图片Download到本地并显示给用户,以后直接读取本地。受Shawn的如何缓存Gravatar 至本地服务器所启发。
- 好处:代码简单,不需要更改文章系统;
- 缺点:每次访问图片都要运行PHP程序,牺牲图片服务器性能;
如果大家有新的方法,欢迎告知,让我们折腾我们的空间吧~Geek万岁~
豆瓣九点认领:doubanclaimb280cbda63c0f0f2