1

私たちの環境は、さまざまなバックエンド Java サーバー (主に tomcat サーバー) へのリバース プロキシとして機能する複数の apache httpd でセットアップされています。

個々の IP アドレスにヒットし、有効な http 応答を確認するスクリプトを作成したいと思います。

httpd は仮想ホストを使用するように設定されているため、完全な http/html 応答を検証するには、http 要求をドメイン名に送信する必要があります。つまり、http 要求を特定の IP アドレスに直接送信すると、apache から誤った html http 応答が返されます。

つまり、要約すると、複数の IP アドレスでリッスンする複数の httpd があります。例えば:

my.domain.com 負荷分散:

192.168.11.1 192.168.11.2

各 IP アドレスのホスト ファイルをプログラムで更新してから、ドメイン名にリクエストを送信し、その方法で個々の IP アドレスを確認できます。

しかし、ドメインに http リクエストを送信し、hosts ファイルを使用せずに特定の IP アドレスに解決する方法はありますか? この種のことをプログラムで実行できる Java lib があるのではないでしょうか?

4

1 に答える 1

0

更新: この記事では、プログラムで制御できる dns をセットアップする方法について説明しています: http://rkuzmik.blogspot.com/2006/08/local-managed-dns-java_11.html。を実装しsun.net.spi.nameservice.NameServicesun.net.spi.nameservice.NameServiceDescriptorその方法でカスタム dns エントリを指定できました。

注意すべきことの 1 つは、InetAddressドメイン名/IP アドレスを積極的にキャッシュすることです。つまり、たとえば、に解決するためにInetAddressオブジェクトを作成すると、キャッシュのためにプログラムの実行中にオブジェクトを変更することは困難または不可能になります。my.domain.com127.0.0.1InetAddress

これも使用できると思います(これは、私が使用した太陽のもののラッパーのようです):

http://www.xbill.org/dnsjava/dnsjava-current/doc/org/xbill/DNS/spi/DNSJavaNameService.html

于 2013-02-14T15:04:56.100 に答える