tomcat - Tomcat 是否接受 IP?

标签 tomcat sun

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

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

Sun 告诉我这是 Tomcat 的一个“特性”。不幸的是,开发和生产中的帐户机器具有相同的名称(不同的域),所以我无法判断我是在 dev 还是 live box 上运行测试。 如果不更改框名称,我可以强制 Tomcat 接受 IP 吗?

最佳答案

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 中的主机 header ,并特别丢弃来自未知主机的请求。

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

关于tomcat - Tomcat 是否接受 IP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1455806/

相关文章:

apache - 禁用通过 Tomcat 直接访问应用程序

java - 关闭服务 - 结合 HandlerInterceptor 和 ServletContextListener

java - 为什么 jProfiler 将 Unsafe.park/unpark 显示为使用 CPU 周期?

garbage-collection - Sun Java jstat 不起作用.. 有时!

linux - Fortran 77 从旧的 sun 机器读取未格式化的序列数据

java.lang.ClassNotFoundException 用于 tomcat 中的 servlet 与 eclipse

java - Spring Boot REST 服务 - 抛出 java.lang.NoClassDefFoundError : org/apache/tomcat/util/ExceptionUtils

tomcat - UI 组件的可重用性

java - sun.awt.AppContext 和其他来源?

java - Sun JDK和open JDK的区别