如何在8台计算机上运行的Rails应用程序上运行Paperclip图像上传(负载均衡)?
用户可以在应用上上传图片。图像存储在其中一台机器上。用户稍后请求图像,但是找不到图像,因为它是从另一台机器请求的。
此类问题的解决方法是什么?我无法使用AWS或任何云服务;图像必须存储在内部。
感谢。
答案 0 :(得分:8)
一种解决方案是使用NFS来安装一个共享文件夹,该文件夹将是您public/system
的根目录或任何您称为包含回形针图像的文件夹。
要想让一切顺利,需要考虑几件事情:
soft
选项,并通过高速本地网络连接进行安装,例如:mount -o soft 10.0.0.1:/export/shared_image_folder
。如果您没有指定soft
选项,并且资产服务器出现故障,那么您的Ruby实例将继续等待服务器上升。一切都会被卡住,网站会向下看。很难理解这一点...... 这是使用NFS的一般准则。我在一个拥有数十万张图像的大型制作网站上使用它,它对我来说很好。
答案 1 :(得分:1)
如果您不想使用NFS等文件共享,则可以将图像存储在数据库中。这是一个为Paperclip提供:database
存储类型的gem: