これについての手がかりはどこにも見つからないようです。
ストーリー(システムの図)私が働いている会社には5つのIISサーバー...すべてのサーバーに多くのWebサイトがあります(すべてのサーバーに同じサイト)すべてのサーバーがバランサーの背後にあるため、ホスト名を入力すると、どのサーバーに転送されるかわかりません。
すべてのサーバーと各サーバーのすべての仮想Webサイトがホストファイルにありますホストファイルでサーバーとサイトを選択すると、このサーバーとサイトに移動し、すべてが機能します。
今私の質問私は各サーバーに接続しようとしています、そしてそれぞれについてそれのページをチェックしてください...
何が起こるかというと、私はいつも同じサーバーにリダイレクトされており、異なるサーバーにはリダイレクトされていません...
サーバーごとにこのコードを呼び出しています。ここで、URLはページの名前であり、「((WebPageTest)test).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;
各サーバーの適切なサーバーと適切なWebサイトに接続して、各サイトのページを確認できるようにする方法を知っている人はいますか?
編集:バランサーやファイアウォールなどの設定を変更する方法はありません...ホストファイルを使用したときに何が起こるかを模倣する必要があります。ホストファイルにサーバーが追加されていない場合、バランサーはリクエストの送信先のサーバーを決定しますが、ホストファイルを使用している場合は、特定のサーバーに転送されます。これは、コードで行う必要があることです。 ...それを行うためにヘッダーに追加するものはありますか?私は考えられるすべてのことを試しましたか?
どうもありがとうございました、
エレズ
特定のサーバーをテストする必要があるため、ロードバランサーを完全にバイパスするか、指定されたロードバランサーパイプを設定する必要があります。たとえば、DNS www.mySite.com
がIP /ポート(20.20.20.20
ポート80
)を指し、それがロードバランサーに転送される場合、別の転送が必要です。ポート800
for internal server 1
、801
for internal server 2
、...、次のいずれかの方法でリダイレクトされます。
質問がありますか? 1.ラドウェアを使用していますか? 2.ロードバランサーの間にファイアウォールがありますか。ファイアウォールをデフォルトゲートウェイにすることもできます。 3. Hostファイルを変更しているため、システム/デフォルトゲートウェイがIPを解決できないことを意味します。ファイアウォールポリシーに問題がありますか? URLを解決するためにIPを与えることはお勧めできません。 4.ロードバランサーでポリシーがどのように定義されているか。 5.ロードバランサーが表示されている場合、クライアントはリダイレクト先のIISサーバー)について心配する必要はありません。6。ポリシーを定義するときは、URLとパブリックIPアドレスではありません。7。ロードバランサーのデフォルトゲートウェイも確認します。
また、ロードバランサーを使用しており、Webサーバーにアクセスするシステムが同じネットワーク上にあるか、ファイアウォール/プロキシ経由で接続されている場合に機能するように構成しています。
ロードバランサーには、このための設定があります。プールに3台のサーバーがある場合、フラグが設定されていなければ、通常は1台のサーバーに移動します。ラドウェアを使用している場合は、フラグの設定を教えてくれます。