0

我有一个 Tomcat 应用程序,它充当 Sun Systems Connect 的 Web 服务器/网关(它本身就是通向 Systems Union Accounts 的网关,我怀疑它是通往幸福的网关)。

只要我使用机器名称(或本地时的本地主机),我就可以通过浏览器访问应用程序的登录页面。但是机器 IP 和 Localhost 都不允许我看到登录页面。

Sun 告诉我这是 Tomcat 的一个“功能”。不幸的是,开发和生产中的帐户机器具有相同的名称(不同的域),所以我不知道我是在开发箱还是现场箱上运行测试。如果不更改盒子名称,我可以强制 Tomcat 接受 IP 吗?

4

3 回答 3

1

Tomcat对IP一无所知。IP 仅被视为主机名。您需要确保配置允许 IP。你有几个选择来实现这一点。

如果为引擎添加 defaultHost,则任何不匹配的主机名或 IP 都将使用此虚拟主机。例如,

<Engine name="Standalone" defaultHost="example.com">

如果您想要更多控制权,您还可以将 IP 添加为别名,例如

<Host appBase="webapps" name="example.com">
   <Alias>192.168.1.2</Alias>
</Host>

IP 可能被拒绝的原因还有很多,

  1. SSL 不允许 IP,因为证书对 IP 地址一无所知。
  2. 如果您在 Apache 或前端交换机上使用虚拟主机,它通常基于您使用的主机名的决定,并且它不知道如何路由 IP。
  3. 您可能有一些安全过滤器或规则来检查 HTTP 中的主机标头,并专门丢弃来自未知主机的请求。

查看日志可能会告诉您确切的原因。

于 2009-09-21T21:43:20.407 回答
0

自从我使用 Tomcat 已经有一段时间了,但我认为默认情况下您可以通过名称或 IP 地址调用 Web 服务。我不知道这是否有帮助,但您可以尝试为 中的 IP 地址设置一个虚拟主机server.xml,例如添加一个类似的节

<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true">

但用您机器的 IP 地址替换“localhost”。

于 2009-09-21T18:24:12.747 回答
0

http://tomcat.apache.org/tomcat-4.1-doc/config/valve.html讨论了一个强制 DNS 查找的 resolveHosts 标志,也可能通过调整显示为您可以列出的 %A 参数之一的模式日志中的 IP 地址。

于 2009-09-21T18:25:02.963 回答