文件上传负载均衡服务器的最佳解决方案

时间:2011-04-01 03:49:38

标签: php mysql upload load load-balancing

我有2个webservers负载均衡,连接到1个Mysql Server。服务器上的php应用程序的功能之一允许用户上载必须可从任一Web服务器访问的图片。这样做的最佳解决方案是什么?

  • 将图片上传到云端?
  • 将图片存储在数据库中
  • 将图片上传到MysQL服务器(不是数据库,文件系统)
  • ......?

感谢您的建议。

3 个答案:

答案 0 :(得分:2)

像上面这样的Rsync可以工作,但是如果你运行一个像wordpress平台这样的高流量站点,上传的图像数量很快就会变得太多,rsync无法在目录树中遍历,你首先会看到rsync也会慢下来在校验和部分进行爬网,然后它将停止工作,就像在具有太多文件的目录中执行ls一样。但在遇到这些问题之前,这是最好的解决方案。

另一个解决方案是远程安装的nfs分区,但除非你处于一个真正受信任的环境中,否则它们会非常不安全。

另一种解决方案是立即将文件“放”到Amazon S3上,然后将URL链接存储在数据库中,并在页面加载时进行渲染。

不要将图片存储在数据库中 - 这实际上会降低db表的速度。

答案 1 :(得分:1)

我使用GlusterFS(一个复制的文件系统)和Amazon S3(用于云存储)都取得了很好的效果。

答案 2 :(得分:0)

我建议上传到文件系统上的文件夹。然后定期运行一个cron作业rsync是两个服务器之间的文件夹。您还可以使用图像上载运行rsync。在数据库中存储图像可能会变得复杂,并且会使数据库膨胀。