似乎无法在任何地方find关于这个的线索。
故事(系统图)在我工作的公司里,我们有5台IIS服务器…每台服务器上都有很多网站(每台服务器都是相同的)所有的服务器都在一台平衡器后面,所以如果你input主机名你不知道你将被导向到什么服务器。
所有的服务器和每个服务器的所有虚拟网站都在HOST文件中如果我select一个服务器和一个站点在主机文件中,我将被引导到这个服务器和站点,每一件事情都在工作。
现在我的问题,我试图连接到每个服务器,并为每一个检查页面上…
发生什么事情是,我一直被redirect到同一台服务器,而不是不同的服务器…
我为每个服务器调用此代码,其中Url是页面的名称和“((WebPageTest)testing).ServerAddress”更改为每个服务器…
string htmlText = string.Empty; try { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://www.MyDomain.com" + Url); request.Host = ((WebPageTest)test).ServerAddress; request.UserAgent = "Tests UserAgen"; WebResponse response = request.GetResponse(); Stream stream = response.GetResponseStream(); StreamReader reader = new StreamReader(stream); htmlText = reader.ReadToEnd(); htmlText = "OK"; } catch (Exception exp) { htmlText = exp.Message; } return htmlText;
任何人都知道如何连接到正确的服务器和正确的网站在每台服务器,所以我将能够检查每个网站的页面?
编辑:有没有办法可以改变设置在平衡器或防火墙或任何这样的事情….我需要模仿使用主机文件时发生了什么。 当没有服务器被添加到主机文件时,平衡器决定向哪个服务器发送请求,但是当我使用主机文件时,我被导向到特定的服务器….这就是我需要在代码…有没有什么东西要添加到标题做到这一点,我已经尝试了我能想到的每一件事情?
非常感谢你,
埃雷兹
由于您要testing特定的服务器,因此应该完全绕过负载平衡器,或者设置指定的负载平衡器pipe道。 例如,如果您的DNS www.mySite.com指向您的IP /端口( 20.20.20.20端口80 ),并将其转发给您的负载均衡器,那么您应该有另一个转发,比方说internal server 1的端口800 , 801为internal server 2 ,…,将通过以下方法之一redirect:
我有几个问题给你? 1.你在使用Radware吗? 2.负载均衡器之间是否有防火墙? 防火墙也可以成为你的默认网关。 3.由于您正在更改主机文件,这意味着您的系统/默认网关无法parsingIP。 你的防火墙策略有问题吗? 给IPparsingURL是不可取的。 4.如何在负载均衡器上定义策略。 5.当负载均衡器在图片中时,客户端不必担心他被redirect到哪个IIS服务器。 6.定义策略时,请确保它是通过URL定义的,而不是公用IP地址。 7.同时检查负载平衡器的默认网关。
我们也在使用一个负载平衡器,我们已经configuration了它,使得它在访问Web服务器的系统在同一个networking上或通过防火墙/代理服务器时起作用。
在负载均衡器中有一个设置。 如果池中有3台服务器,那么如果没有设置标志,它通常会进入一台服务器。 如果您使用Radware,我可以告诉您标志设置。