Tomcat один порт только для одной войны - PullRequest
3 голосов
/ 10 января 2012

На моем сервере Tomcat 6 запущены два WAR-файла.

Как настроить каждую WAR для прослушивания только одного порта? Например:

порт 443 => имеет доступ только к .war

порт 8000 => имеет доступ только к b.war

1 Ответ

3 голосов
/ 18 января 2012

Мне удалось настроить приведенный выше сценарий, используя эти параметры: я создал две папки с именами 443 и 8000 в папке webapp и настроил две службы -элементы, указывающие на две разные папки и прослушивающие на двух разных портах.

server.xml

<Service name="Catalina">
<Connector port="8000" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           keystoreFile="${catalina.base}/conf/.keystore" keystorePass="xxxxx"
           clientAuth="false" sslProtocol="TLS" />

<Engine name="Catalina" defaultHost="localhost">
  <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
         resourceName="UserDatabase"/>

  <Host name="localhost"  appBase="webapps/8000"
         unpackWARs="true" autoDeploy="true"
         xmlValidation="false" xmlNamespaceAware="false">
            <Context path="" docBase="Apple"/>
  </Host>
</Engine></Service>

<Service name="Catalina2">
<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="443" />

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           keystoreFile="${catalina.base}/conf/.keystore" keystorePass="xxxxx"
           clientAuth="false" sslProtocol="TLS" />

<Engine name="Catalina2" defaultHost="localhost">
  <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
         resourceName="UserDatabase"/>

  <Host name="localhost"  appBase="webapps/443"
        unpackWARs="true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">
  </Host>
</Engine></Service>
...