我在多个 Web 节点上运行 Magento CE。管理后端始终在同一台服务器上运行,因此所有图像都上传到此服务器上。在我的
答案1
最简单的方法是在管理服务器上使用带有 inotify 的 rsync - 这样新图像就会立即分发到其他节点。
类似这样的应用程序http://code.google.com/p/lsyncd/能够运行良好并产生近乎实时的复制。
你还必须记住,在集群中,你将动态生成调整大小的缓存图像,因此 rsync
./media/catalog/product/cache
在所有节点之间循环目录。这不需要 inotify,并且可以在约 10 分钟的 cron 上运行。
随着媒体目录的增大,这种方法显然会变得越来越低效。
但如果你有一个大网站
但是,如果您的网站规模太大,需要集群才能开始,那么为所有媒体使用 CDN 似乎是明智之举。Magento 为不同的 CDN 提供商提供了大量支持
答案2
对于缓存文件,一种可能有效的方法是使用 NFS 共享卷并将其安装在所有 Web 服务器上。这样,您可以确保所有 Web 服务器上的缓存文件都可用,甚至在您想要清除任何缓存文件时,这也会有所帮助。
答案3
我最好的设置是通过 nfs 在所有 webnides 上挂载 /var 和 /media,因为不会执行任何 php(因为旧的 php 错误在 nfs 上运行),然后将其余文件夹 lsyncd 到 webnodes 。这将确保性能和媒体复制