多步图像提交加载平衡服务器问题

时间:2011-05-21 23:20:21

标签: php apache load-balancing squid

我们有两个apache / php web服务器与squid页面缓存代理负载均衡。鱿鱼缓存在图像提交页面上无效。我们有一个用户可以提交图像的表单。

这是一个两步的过程。他们首先上传图片。第二步,他们可以输入有关图像和图像的详细信息,然后在提交图像详细信息后移动到正确的文件夹。

问题是当流量很高时,第二步可能是从不同的服务器提供的,然后是带有上传图像的服务器。因此,第二步可能无法找到上传的图像,上传无法完成。

我们在这些服务器上有数千个图像文件,因此它们之间的同步很慢。无论如何,我们是否可以强制特定页面始终从特定服务器提供服务?基本上是为了绕过负载均衡功能。

2 个答案:

答案 0 :(得分:1)

有一些解决方案。

  1. 切换到nginx作为反向代理,您可以将客户端粘贴到主机
  2. 使上载目录成为在两台主机上安装的NFS共享
  3. 将文件上传到mysql表(最好是使用哈希表),这样两个服务器都可以访问它。
  4. 我个人会选择选项1,因为你仍然可以获得循环负载平衡,但是每个连接都会粘在它最初连接的主机上。

    选项2的好处仍然是平衡请求,但缺点是NFS共享是单点故障。

    如果使用哈希表,如果数据库服务器上没有足够的ram,则选项3可能会导致问题。

答案 1 :(得分:0)

我可以看到Geoffrey回答的两个选项  1.将图像上传到通过rsync同步的上传目录 然后#图像会小得多,它们会更快地同步 完成整个过程后,您可以将图像移动到正确的文件夹中  2.数据库:不存储图像本身,而是存储图像的网址,因此您始终可以知道哪个服务器正在保存它,可以访问它。
只有两个选项来阅读Geogrey的答案并寻找与此主题相关的信息。