我在IIS 8 (Windows 2012)中设置了一个Web Farm,使用ARR 3.0。Farm有两台服务器。是否可以将所有请求配置为定向到特定服务器(如果正常运行),并且仅当该服务器不正常运行时,将请求定向到第二台服务器?
我还没有找到解决方案,但我实现了一个解决我的问题的变通办法。我使用了服务器场的运行状况测试功能。在首选服务器上,运行状况测试url响应OK。在辅助服务器上,运行状况测试url检查首选服务器是否正常工作,如果正常,则使用超出可接受状态码的HTTP状态码响应,如果不正常,则使用OK。
用ASP实现运行状况测试URL为http://serverFarm/HealthTest.asp
,其中'serverFarm'是创建场时给出的服务器场名称。
首选服务器的healthtest .asp
<%@ LANGUAGE=JScript CODEPAGE=65001%>
<%
Response.Write('OK');
%>
辅助服务器的HealthTest.asp
<%
var XMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP");
var ReqURL = 'http://preferred.server.ip/HealthTest.asp';
try {
XMLHTTP.open("GET" , ReqURL, false);
XMLHTTP.send("");
if(200 == XMLHTTP.status)
{
Response.Status = "403 Primary server Active";
}
else
Response.Write('OK');
} catch (e) {
Response.Write('OK');
}
%>