我有多个Linux Web服务器连接到负载均衡器,并且我希望在这些服务器之间共享资产(例如图片,视频和其他内容)。做这个的最好方式是什么?
目前,我已经将文件服务器安装到所有Web服务器上,但是我担心它在繁忙的流量下会崩溃。如何避免这种情况发生?
提前致谢。
我有多个Linux Web服务器连接到负载均衡器,并且我希望在这些服务器之间共享资产(例如图片,视频和其他内容)。做这个的最好方式是什么?
目前,我已经将文件服务器安装到所有Web服务器上,但是我担心它在繁忙的流量下会崩溃。如何避免这种情况发生?
提前致谢。
Answers:
有多种方法可以根据您的需要执行此操作。
如果您有很多新文件,前两个最好。如果您不经常添加或更改文件,第三个将是理想的解决方案,因为用户将获得尚未同步的静态内容的404。
在许多方面,最后一个选项可能是理想的选择,但在4种方法中,最后一个选择可能是最昂贵的。您还需要重写网站来支持此方法。
减少Web服务器上的负载并执行负载平衡的另一种好方法是使用squid(即squid3)将其设置为带有缓存的反向代理。如果以这种方式设置,它将静态内容(例如图片等)缓存到HDD(默认)或RAM(更快更好)中。如果任何一个特定节点超载,它也能够与其他鱿鱼服务器循环。
解决此难题的一种方法是,将文件的主要读/写副本放在共享的NFS驱动器上,但还要在每个Web服务器上保持只读副本,以便NFS主机出现故障时可以进行文件访问处于只读模式,而不是完全丢失它们。
rsync
每15分钟运行一次,以使每个Web主机上的只读副本保持最新状态。check_link
bash脚本运行,每分钟以确保NFS挂载仍然存在,如果没有交换一个符号链接到只读副本。从我第一次设置此系统时,在本文中找到了更多详细信息。
优点:
缺点:
您可能要考虑使用NoSQL数据库。它们旨在在集群上工作,并提供最终的一致性。但是要小心,它们不是酸性的。
这是一个介绍,可以帮助您确定您想要哪种NoSQL数据库。
这是与可用NoSQL相关的资源列表。