转发请求到多个服务器

我们有2台服务器。 一个是旧服务器,另一个是新服务器。 目前我们正在做一个迁移,因为旧的服务器不足以处理每天的请求。

规格是:

旧服务器

  • Ubuntu 10.04
  • Nginx作为反向代理
  • Apache WSGI
  • 的Python / Django的

新的服务器

  • Ubuntu 10.04
  • Nginx的
  • Gunicorn
  • 的Python / Django的
  • 芹菜+的Redis

我们的经理要求我们研究旧的服务器是否可以对所有传入请求执行多个转发,例如,设置旧服务器的Nginx将所有请求转发给新旧服务器。 目的是使用旧服务器作为比较器对新服务器执行unit testing,看看新服务器是否准备好接pipeangular色。

请帮忙,如果有一个想法,或者必须安装一些引擎,或者我们做什么是不可能的。 非常感谢。

目前我的服务器configuration(旧服务器):

服务器{

听*:80;
access_log /var/log/nginx/apps.access.log;

error_log /var/log/nginx/apps.error.log;
位置 / {

proxy_pass http://127.0.0.1:8081; include /etc/nginx/proxy.conf; 

}

location / media / {

  root /var/www/media/; expires 24h; 

}

}

没有答案? :'(…现在,这是我的方法:

我创build了新的服务器(虚拟服务器),复制所有的Web服务结构和方法(虚拟方法,相同的方法声明,但没有代码)。 在我写的每一个方法里面:

def foo(bar):

将xmlrpclib导入为x p = x.ServerProxy(server1_url)

结果= p.foo(酒吧)

p = x.ServerProxy(server2_url)

p.foo(条)

返回结果

如果您发现此代码使Web服务变慢,只需使用celery执行发送到Server2即可。 我们只需要Server1的结果。

这种方式只是一个技巧,但它的作品。