【问题标题】:Serving images through HTTP. Load balanced highly available architecture通过 HTTP 提供图像。负载均衡的高可用架构
【发布时间】:2011-02-24 15:16:35
【问题描述】:

我正在规划一个系统,用于从具有负载平衡的服务器集群提供图像文件。我正在与架构作斗争,以及是否将实际图像文件保存为数据库或文件系统中的 blob。

我的问题是,无论如何都需要数据库连接,因为用户需要经过身份验证。不同的用户只能访问他们朋友的内容和他们自己上传的项目。由于无论如何都需要连接,所以也许可以从那里检索图像?

图像的存储应该没有单点故障。显然,系统应该很快。

对于数据库方法: 该数据库与我的应用程序的其余部分是分开的,因此我的应用程序主数据库不会因所有图像而变得臃肿。数据库很容易扩展,因为我只需要向集群添加更多服务器。问题是,我听说这可能是一个拥有数百万甚至数十亿照片的网站的缓慢系统。

对于文件系统: 我真的很想知道如何设计一个系统,其中网络服务器是负载平衡的,而且它们对于整个系统都不是太重要。所有服务器都应使用公共存储,以便它们可以访问集群中的相同文件。

你怎么看?在这种情况下,哪个是最好的解决方案?

对于图像服务集群,您会推荐什么样的整体架构和服务器?注意:此集群提供图像。应用服务器则完全不同。

【问题讨论】:

    标签: php mysql image cluster-computing


    【解决方案1】:

    我绝对不会将它们存储在数据库中。如果您需要使用 PHP 进行身份验证,请尽快执行此操作并使用 X-SendFile 将实际提供的图像移交给您的 Web 服务器。

    对于文件系统来说,MogileFS 听起来很合适。

    对于网络服务器,我建议nginx。如果您可以调整您的身份验证机制以使用existing modules 之一,或者为它编写自己的模块,您可以完全省略 PHP(已经有一个 MogileFS 客户端模块)。

    【讨论】:

    • 感谢您的帮助!我看了你提到的那些东西,肯定会使用 xSendFile!不过,不确定是否使用 lighttpd 或 nginx 用于 httpd。 MogileFS 似乎也正是我所需要的!
    猜你喜欢
    • 2016-08-13
    • 2016-07-08
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    相关资源
    最近更新 更多