Не удается получить доступ к Tomcat 5 извне - PullRequest
0 голосов
/ 27 января 2012

Я пытаюсь установить сервер Tomcat на нашей машине с Unix (удаленный доступ), который будет использоваться для тестовых проектов.

Я использовал Tomcat 5.0.25 (так как наша продукция использует ту же версию).

Пока я не хочу запускать его через Apache, а просто хочу получить доступ к Tomcat напрямую.

Итак, я развернул Tomcat и настроил server.xml (см. Ниже), но при его запуске я не смог увидеть страницу приветствия tomcat 5, используя этот URL: 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.Http11Protocol start INFO: Starting Coyote HTTP/1.1 on http-9082 Jan 27, 2012 8:21:56 PM org.apache.jk.common.ChannelSocket init INFO: JK2: ajp13 listening on /0.0.0.0:9020 Jan 27, 2012 8:21:56 PM org.apache.jk.server.JkMain start INFO: Jk running ID=0 time=1/14 config=/home/tomcat/tomcat5_fcl_uat/conf/jk2.properties Jan 27, 2012 8:21:56 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 2173 ms

And Command lsof -i TCP Показывает:

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

Я не могу понять, почему я не вижу страницу кота. У меня есть другой сервер Tomcat, работающий через порт 9081, и мы можем получить к нему прекрасный доступ, используя url global.int.com:9081, и приведенный выше файл server.xml является точной копией этого, за исключением того, что номера портов изменены. Может ли кто-нибудь дать мне подсказку о том, где все разваливается. Спасибо

UPDATE2:

Результат 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 -S на LocalHost машина:

    [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 и как это исправить?

1 Ответ

1 голос
/ 31 января 2012

Оказывается, это была проблема с брандмауэром, которая блокировала входящие соединения.iptables -L -v -n (в Linux) помог выявить актуальную проблему.См. Комментарии к статье для более подробной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...