configuration - 如何在网站上高效存储和提供大量小图片?

标签 configuration scalability lamp

在我的网站上,我想为用户提供一个包含大量小图片的页面,有点像 Windows 中的缩略图。
所有图片均为文件,大小从1KB到300KB以上,但通常不超过5KB。

目前,所有这些图像都位于 Web 服务器(linux+apache)上的一个文件夹中,但我认为这不是最好的解决方案,特别是如果我必须扩展到多个 Web 服务器并且当我将拥有数千个。

那么,我是否应该将这些文件放入数据库中(可以)?或者有一个单独的文件服务器?还有其他建议吗?

最佳答案

需要考虑的一些事项:

  • 不要将图像放入数据库中,除非您可以将其保留在内存中。普通文件通常是二进制数据的完美解决方案,您仍然需要为每个文件发出单独的 HTTP 请求。
  • 如果您可以在多个服务器上镜像镜像并在它们之间保持平衡,那就太好了。
  • 如果您没有额外的服务器,请尝试使用虚拟子域来伪造它,以规避并发连接限制。请参阅this article 。与此相关的还有:将图像分布在子域的每个页面上,每个子域 2 个或更多。
  • 不要尝试压缩流量。你只会浪费 CPU 时间。
  • 确保您对静态图像使用正确的缓存(例如远期过期)。如果图像更新,您可以随时更改地址。
  • 确保您提供来自无 Cookie(子)域的所有静态内容。

关于configuration - 如何在网站上高效存储和提供大量小图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2413247/

相关文章:

php - 如果我要在数据库中存储两条记录,则需要计量单位表

Docker 提交 - 未保存数据库更改

在不太了解服务器配置的情况下发送电子邮件的 C# 代码?

java - JRebel Tomcat + Websphere

database - Firebase Firestore的幂等计数器实现

php - 在 MySQL 中缩放递增计数器(用于跟踪页面浏览量)

php - LAMP UTF-8 错误地保存到 MySQL 数据库

python - PyCharm自动更改脚本

Git 别名文档

scalability - Facebook 等大型网站如何分配负载?