我在 IIS 7 中有一个 ASP.NET 应用程序设置,它在端口 80 上使用两个 HTTP 绑定,每个绑定都有不同的 IP 地址。
此 Web 服务器位于负载均衡器后面,该负载均衡器可以通过任一 IP 地址将流量转发到 Web 服务器(取决于不重要的情况)。
我的应用程序是否可以检测负载均衡器正在使用哪个 IP - 它是否可以通过请求中的 REMOTE_ADDR 服务器变量简单地使用(假设负载均衡器覆盖它)?
我认为它的 F5 负载均衡器很有帮助!
我在 IIS 7 中有一个 ASP.NET 应用程序设置,它在端口 80 上使用两个 HTTP 绑定,每个绑定都有不同的 IP 地址。
此 Web 服务器位于负载均衡器后面,该负载均衡器可以通过任一 IP 地址将流量转发到 Web 服务器(取决于不重要的情况)。
我的应用程序是否可以检测负载均衡器正在使用哪个 IP - 它是否可以通过请求中的 REMOTE_ADDR 服务器变量简单地使用(假设负载均衡器覆盖它)?
我认为它的 F5 负载均衡器很有帮助!
这将显示所有相关数据:(来自http://msdn.microsoft.com/en-us/library/system.web.httprequest.servervariables(v=vs.90).aspx)
int loop1, loop2;
NameValueCollection coll;
// Load ServerVariable collection into NameValueCollection object.
coll=Request.ServerVariables;
// Get names of all keys into a string array.
String[] arr1 = coll.AllKeys;
for (loop1 = 0; loop1 < arr1.Length; loop1++)
{
Response.Write("Key: " + arr1[loop1] + "<br>");
String[] arr2=coll.GetValues(arr1[loop1]);
for (loop2 = 0; loop2 < arr2.Length; loop2++) {
Response.Write("Value " + loop2 + ": " + Server.HtmlEncode(arr2[loop2]) + "<br>");
}
}
在其中,您会找到引用客户端的 REMOTE_ADDR 和引用 IIS 主机的 SERVER_PORT。