tomcat - 无法从外部访问 Tomcat 5

标签 tomcat tomcat5

我正在尝试在我们的 unix 机器上安装一个 Tomcat 服务器(远程访问),它将用于测试项目。

我使用的是 Tomcat 5.0.25(因为我们的产品使用的是相同版本)。

现在我不想通过 Apache 运行它,而只想直接访问 tomcat。

所以我已经部署了 Tomcat 并配置了 server.xml(见下文)但是当我启动它时,我无法使用此 URL 查看 tomcat 5 欢迎页面:global.int.com:9082

<?xml version='1.0' encoding='utf-8'?>

<Server port="9007" shutdown="SHUTDOWN">

  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
            debug="0"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
            debug="0"/>

  <!-- Global JNDI resources -->
  <GlobalNamingResources>

    <!-- Test entry for demonstration purposes -->
    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>

    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users -->
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
       description="User database that can be updated and saved">
    </Resource>
    <ResourceParams name="UserDatabase">
      <parameter>
        <name>factory</name>
        <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
      </parameter>
      <parameter>
        <name>pathname</name>
        <value>conf/tomcat-users.xml</value>
      </parameter>
    </ResourceParams>

  </GlobalNamingResources>

  <Service name="Catalina">


    <Connector port="9082" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />


    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="9020" protocol="AJP/1.3" redirectPort="9444" />


    <!-- An Engine represents the entry point (within Catalina) that processes
         every request.  The Engine implementation for Tomcat stand alone
         analyzes the HTTP headers included with the request, and passes them
         on to the appropriate Host (virtual host).
         Documentation at /docs/config/engine.html -->

    <!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">         
    --> 
    <Engine name="Catalina" defaultHost="localhost">


      <!-- This Realm uses the UserDatabase configured in the global JNDI
           resources under the key "UserDatabase".  Any edits
           that are performed against this UserDatabase are immediately
           available for use by the Realm.  -->
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>

      <!-- Define the default virtual host
           Note: XML Schema validation will not work with Xerces 2.2.
       -->
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">

      </Host>
    </Engine>
  </Service>
</Server>

我可以看到 Tomcat 正在运行,正如 Catalina.out 所说:

Jan 27, 2012 8:21:56 PM org.apache.coyote.http11.Http11协议(protocol)启动 信息:在 http-9082 上启动 Coyote HTTP/1.1 2012 年 1 月 27 日晚上 8:21:56 org.apache.jk.common.ChannelSocket 初始化 信息:JK2:ajp13 监听/0.0.0.0:9020 2012 年 1 月 27 日晚上 8:21:56 org.apache.jk.server.JkMain 启动 INFO: Jk running ID=0 time=1/14 config=/home/tomcat/tomcat5_fcl_uat/conf/jk2.properties 2012 年 1 月 27 日晚上 8:21:56 org.apache.catalina.startup.Catalina 开始 信息:服务器启动时间为 2173 毫秒

和命令 lsof -i TCP 显示:

java 29923 tomcat 5u IPv6 373023 TCP *:9082 (LISTEN)

我不明白为什么我看不到tomcat页面。我有另一个 Tomcat 服务器在端口 9081 上运行,我们可以使用 url global.int.com:9081 访问它,上面的 server.xml 是它的副本,除了端口号是变了。任何人都可以给我一个提示,告诉我事情在哪里分崩离析。谢谢

更新2:

wget -S 来自远程桌面 的结果:

    --2012-01-30 17:35:42--  http://global.int.com:9082/
    Resolving global.int.com... 10.215.222.78
    Connecting to global.int.com|10.215.222.78|:9082... failed: No route
    to host.

下面是 wget -SLocalHost 机器上的结果:

    [tomcat@global logs]$ wget -S  http://global.int.com:9082/
    --16:17:03--  http://global.int.com:9082/
    Resolving global.int.com:9082... 10.213.210.78
    Connecting to global.int.com:9082|10.213.210.78|:9082... connected.
    HTTP request sent, awaiting response...
      HTTP/1.1 200 OK
      Content-Type: text/html;charset=ISO-8859-1
      Date: Sat, 28 Jan 2012 05:17:03 GMT
      Server: Apache-Coyote/1.1
      Connection: close
    Length: unspecified [text/html]
    Saving to: `index.html'

        [ <=>                                                                                          ] 9,312       --.-K/s   in 0s

    16:17:03 (297 MB/s) - `index.html' saved [9312]

    [tomcat@global logs]$

更新 3:iptables -L -v -n 的结果:

  106  5920 ACCEPT     tcp  --  *      *       10.0.0.0/8           0.0.0.0/0           tcp dpt:8080
    6   312 ACCEPT     tcp  --  *      *       10.0.0.0/8           0.0.0.0/0           tcp dpt:8180
    0     0 ACCEPT     tcp  --  *      *       10.0.0.0/8           0.0.0.0/0           tcp dpt:9080
   19   988 ACCEPT     tcp  --  *      *       10.0.0.0/8           0.0.0.0/0           tcp dpt:9081

如果我错了,请纠正我 - 但上面的结果显示了我无法访问 tomcat 的原因,因为我已将端口 9082 分配给 tomcat,并且该端口不存在于上面的列表中。

server.xml 中使用的所有端口号都是唯一的(我已经仔细检查过)。关于为什么我看不到 Tomcat 主页以及如何修复它的任何建议?

最佳答案

原来这是一个阻止传入连接的防火墙问题。 iptables -L -v -n(在 Linux 上)有助于揭示实际问题。有关详细信息,请参阅文章下方的评论。

关于tomcat - 无法从外部访问 Tomcat 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9031345/

相关文章:

ssl - Tomcat5 SSL 不工作

java - httprequest.getsession 返回 null

java - 当部署到独立的 tomcat 而不是 Eclipse 的 Tomcat 时,我基于 Spring 的 Restful web 服务给出 404

java - 如何获取项目中文件的绝对路径(而不是存储在临时文件夹中的文件)

java - 针对不同tomcat war应用的多个logback.xml配置文件

JAVA - Tomcat 5 应用程序使用 HTTPS 连接到 Web 服务,而 Tomcat 7 应用程序不

java - tomcat 5.5如何防止XSS攻击

html - 图片不显示 html css

java - 使用命令行向 Apache Tomcat 服务器发送多个请求