1

我们的环境设置有多个 apache httpd,它们充当各种后端 java 服务器(主要是 tomcat 服务器)的反向代理。

我们想编写一个脚本来访问每个单独的 IP 地址并检查有效的 http 响应。

httpd 设置为使用虚拟主机,因此为了验证完整的 http/html 响应,我们需要向域名发送 http 请求。换句话说,直接向特定 IP 地址发送 http 请求会导致 apache 的 html http 响应不正确。

所以,总而言之,我们有多个 httpd 监听多个 IP 地址。例如:

my.domain.com 负载平衡:

192.168.11.1 192.168.11.2

我们可以以编程方式更新每个 IP 地址的主机文件,然后向域名发出请求并以这种方式检查每个单独的 IP 地址。

但是,有没有办法在不使用主机文件的情况下向域发出 http 请求并将其解析为特定的 IP 地址?也许有一个java lib可以以编程方式做这种事情?

4

1 回答 1

0

更新:这篇文章很好地解释了如何设置可以以编程方式控制的 dns:http ://rkuzmik.blogspot.com/2006/08/local-managed-dns-java_11.html 。我实现了sun.net.spi.nameservice.NameService,并且sun.net.spi.nameservice.NameServiceDescriptor能够以这种方式指定自定义 dns 条目。

需要注意的一件事是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 回答