我们有 2 台服务器。一台是旧服务器,另一台是新服务器。目前我们正准备进行迁移,因为旧服务器无法处理日常请求。
规格如下:
旧服务器
- Ubuntu 10.04
- Nginx 作为反向代理
- Apache WSGI
- Python/Django
新服务器
- Ubuntu 10.04
- Nginx
- 古尼康
- Python/Django
- Celery+Redis
我们的经理让我们研究一下旧服务器是否可以对所有传入请求进行多次转发,例如,将旧服务器的 Nginx 设置为将所有请求转发到旧服务器和新服务器。目的是使用旧服务器作为比较器对新服务器进行单元测试,看看新服务器是否已准备好接管该角色。
请帮忙,如果有想法,或者必须安装某些引擎,或者我们做的事情是不可能的。非常感谢。
目前我的服务器配置(旧服务器):
服务器 {
听*: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;
}
位置 /媒体/ {
root /var/www/media/; expires 24h;
}
}
答案1
没有答案?:'(...目前,这是我的方法:
我创建了新的服务器(虚拟服务器),复制了所有 Web 服务结构和方法(虚拟方法,方法声明相同但没有代码)。在每个方法中我都写了:
def foo(酒吧):
导入 xmlrpclib 作为 x p = x.ServerProxy(server1_url)
结果 = p.foo(bar)
p = x.ServerProxy(server2_url)
p.foo(酒吧)
返回结果
如果您发现此代码使 Web 服务变慢,只需使用 celery 执行发送到 Server2 的操作。我们只需要 Server1 的结果。
这种方法虽然只是一种技巧,但是却很有效。