Tomcat只有一个端口用于一个WAR

时间:2012-01-10 10:21:53

标签: tomcat tomcat6

我的tomcat 6服务器上运行了两个WAR文件。

如何设置每个WAR只侦听一个端口? 例如:

端口443 =>只能访问a.war

port 8000 =>只能访问b.war

1 个答案:

答案 0 :(得分:3)

我设法使用以下设置配置上述方案:我在 webapp 文件夹下创建了两个名为 443 8000 的文件夹,并进行了配置两个服务元素指向两个不同的文件夹,并在两个不同的端口上进行侦听。

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>