代码之家  ›  专栏  ›  技术社区  ›  Richard210363

Tomcat接受IP吗?

  •  0
  • Richard210363  · 技术社区  · 16 年前

    我有一个Tomcat应用程序,它是sunsystemsconnect的web服务器/网关(它本身就是系统联盟帐户的网关,我怀疑它是通往幸福的网关)。

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

    告诉我这是Tomcat的一个“特色”。不幸的是,开发中的和生产中的帐户机器具有相同的名称(不同的域),所以我无法判断我是在dev还是livebox上运行测试。 除了改变盒子的名字,我能强迫Tomcat接受IPs吗?

    3 回复  |  直到 14 年前
        1
  •  1
  •   ZZ Coder    16 年前

    Tomcat对IPs一无所知。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中的主机头,并专门删除来自未知主机的请求。

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

        2
  •  0
  •   ire_and_curses    16 年前

    我已经有一段时间没有使用Tomcat了,但我认为默认情况下,您可以通过名称或IP地址调用web服务。我不知道这是否有用,但你可以试着设置一个 virtual host 中的IP地址 server.xml ,例如,添加一节

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

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

        3
  •  0
  •   Todd Derscheid Todd Derscheid    16 年前

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