1

我正在尝试测试负载均衡器后面的网页的可用性。所以我想编写一个powershell脚本来分别从每个Web服务器加载一个页面。问题是服务器使用主机头,所以我不能手动指定 ip 地址,也不能只使用 url,因为它可能会负载平衡到不同的服务器。理想情况下,我正在寻找这样的东西。

$wc = New-Object net.webclient
$wc.downloadString("10.0.0.1", "http://test.com/home.html")

但我不知道该怎么做。我更喜欢 powershell,但如果有另一个 Windows 实用程序可以完成这项工作,我会接受这个想法。

4

1 回答 1

2

我知道这是一个老问题,但我最近需要自己完成这个并且偶然发现了这个寻找解决方案。我没有在其他地方找到答案,但能够为自己发现它并想分享以防有人需要这样做。

您需要做的是在通过 IP 进行调用之前添加一个 Headers 值来指定您的主机:

$wc = New-Object net.webclient
$wc.Headers.Add("Host", "test.com")
$wc.DownloadString("http://10.0.0.1/home.html")

这告诉 WebClient 调用将页面请求发送到哪个服务器,同时仍然确保请求成功解析,因为它也具有主机头信息。

*请记住,如果您根据自己的需要进行调整,每次进行 WebClient 调用时,Headers 值都会被重置。所以一定要同时执行 $wc.Headers.Add() 和 $wc.DownloadString() 。

于 2015-03-31T23:23:21.453 回答