我在server A
上有一份反馈表。由于流量很大,我想根据反馈类别(帖子表单中的字段)将其中一些POST请求重定向到另一个server B
。
问题是反馈表单分布在多个移动应用程序中,现在是硬编码的。我们现在无法在表单帖子中更改任何内容。
最好的方法是什么?是否可以使用DNS重定向?理想情况下,在请求到达Apache服务器以增加负载之前,我会这样做,重定向发生。请建议。
答案 0 :(得分:1)
您可以返回307 HTTP响应,该响应告诉客户端重定向到其他位置,同时重新发布所有数据。对于大块数据(文件)来说,这可能是一个缺点,但如果您选择自己将数据发送到其他服务器,那也是一个缺点。除此之外,第一台服务器无论如何都会收到数据,所以如果处理本身相对成本太高,你只能通过这个解决方案获得。
更好的解决方案是使用负载均衡器,它可以确定您发送数据的服务器。
答案 1 :(得分:0)
理想情况下,您需要更改表单(不是实际表单本身,而是支持代码)。我们的想法是添加一些JavaScript,在提交表单时检查“类别”字段并更改表单“action”属性的值,使其提交给所需的服务器。
如果根本无法完成(无论出于何种原因),那么可能在服务器端实现。它不应直接点击Server A
,而应点击Server Zero
- 负载均衡器,然后根据您提供的逻辑进一步路由请求:例如1)选择不太繁忙的服务器; 2)随机选择服务器; 3)分析POST表单数据并选择正确的服务器; 4)其他选择。 #2可以通过DNS实现(下面的链接中提供了一个示例)。
任何负载均衡器都应该能够实现选项1& 2.对于其他选项,您必须检查特定负载均衡器(软件或硬件)是否支持它(检查功能列表)。
链接: