• 技术文章 >后端开发 >php教程

    请教图片服务器的问题

    2016-06-06 20:50:06原创428

    目前正在做一个商城系统,现在做到商品这一模块,根据需求图片需要单独存放 > 1台服务器中, 纠结的问题是在商品详情这个字段中,详情介绍是图文混排,不像是首页、幻灯、广告可以单独存放在一个图片表中使得在前端取出图片时可以自由定义访问图片的根域名, 例如数据库中存放的图片src是 images/2013/3/2/uuid.jpg , 前端取出来的路径是 $config['image_url'][0].$image['src']类似这样的形式.. 但是商品详情里不同,图文混排的,除非在商品详情中用某个标识来代替图片,然后在取出详情和图片地址的时候用真实的图片src替换,除此之外我想不到有其它办法.. 目前接触过Linux,但是对于一些负载均衡、反向代理的应用不熟悉.. 总而言之:

    有什么办法,可以在尽量不修改程序代码的情况下,可以做到图片轮询,例如linux中的某些功能例如文件同步等,还有重要的一点,在上传图片时,是直接上传给web server处理后还是上传时就直接传给其它的图片服务器?小白对于这点很不解,求大神指点。。

    回复内容:

    目前正在做一个商城系统,现在做到商品这一模块,根据需求图片需要单独存放 > 1台服务器中, 纠结的问题是在商品详情这个字段中,详情介绍是图文混排,不像是首页、幻灯、广告可以单独存放在一个图片表中使得在前端取出图片时可以自由定义访问图片的根域名, 例如数据库中存放的图片src是 images/2013/3/2/uuid.jpg , 前端取出来的路径是 $config['image_url'][0].$image['src']类似这样的形式.. 但是商品详情里不同,图文混排的,除非在商品详情中用某个标识来代替图片,然后在取出详情和图片地址的时候用真实的图片src替换,除此之外我想不到有其它办法.. 目前接触过Linux,但是对于一些负载均衡、反向代理的应用不熟悉.. 总而言之:

    有什么办法,可以在尽量不修改程序代码的情况下,可以做到图片轮询,例如linux中的某些功能例如文件同步等,还有重要的一点,在上传图片时,是直接上传给web server处理后还是上传时就直接传给其它的图片服务器?小白对于这点很不解,求大神指点。。

    其实楼上已经说得挺明白了,我做一下补充吧。

    首先,所谓的图片服务器,其实也就是一个用于存放静态文件的地方,也就是说,能够用http 访问得到的服务器我们都可以称之为图片服务器。

    现在我们只需要把把图片看做成一种资源存放到一个能用http(apache, nignx)的服务器即可。

    要完成这点,实际上我们只需要把图片存放到一个目录,然后,这个目录与相应的http 服务器目录进行映射,或者就直接存在http 服务的相应目录下。

    以上,一个所谓的图片服务器的基础概念就完成了。

    于是,我们就能通过http 访问的直接访问到图片,接着,我们可以这样设计我们的api。

    就是把图片的相对路径存进数据库

    我们可以直接把图片的相对路径例如 '/images/shop/xxxx.jpg' 诸如此类路径存进数据库,接着,前端获取api 的时候,我们只需要组合这样的url 返回给他例如:图片服务器的地址是http://host:port,组成一个这样的http://host:port/images/shop/xxx.jpg.给前端就行。这样的好处就是把图片做成一种资源,通过http 访问,无论你怎么折腾服务器,只要改一下host 前端就可以获得对应的图片。与是不是图文混排不混排毫无关系,因为图片都统一上传到一个地方进行管理。

    同步图片到其他服务器,然后DNS轮询

    你管他是图文混排还是首页幻灯、广告。 流程如下: 1. 图片上传到图片服务器上(通过API,或者webservice 等等方法), 返回图片存储路径。

    1. 产品后台上传,得到这个图片地址。

    不需要在乎是不是图文混排吧。

    如果你想可以横向扩展,并且均衡负载,支持冗余,图片服务器集群 建议你去看看fastdfs 这个非常赞,适合图片存储(或小文件存储)

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:ucenter A能同步B B不能同步A 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 设计API接口时,要注意这些地方!• PHP网站常见一些安全漏洞及防御方法• OPENBIZ - 使应用开发不同于编程_PHP教程• 如何调用这个JS?_PHP教程• Php5.0说明------为面向对象而生的php5_PHP教程
    1/1

    PHP中文网