Comment exécuter différentes applications sur une seule instance Tomcat derrière différents ports?
actuellement, j'ai 2 applications web app1 et app2 fonctionnant sur Tomcat 6:
- app1 sur http://localhost:8080/app1
- app2 sur http://localhost:8080/app2
Je veux configurer Tomcat pour qu'ils tournent en contexte racine derrière des ports séparés:
- app1 sur http://localhost:8081
- app2 sur http://localhost:8082
Que Faut-il faire?
5 réponses
je pense que vous pouvez configurer cela dans votre serveur .xml fichier et mettre 2 services :
<Service name="app1">
<Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="app1"
unpackWARs="true" autoDeploy="true">
</Host>
</Engine>
</Service>
<Service name="app2">
<Connector port="8082" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="app2"
unpackWARs="true" autoDeploy="true">
</Host>
</Engine>
</Service>
autre exemple d'ajout de connecteurs:
<Service name="reciver">
<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="10"
enableLookups="false" acceptCount="100"
connectionTimeout="10000" disableUploadTimeout="true"
useBodyEncodingForURI="true"/>
<Engine name="reciver" defaultHost="localhost" jvmRoute="host1">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase" />
<Host name="localhost" appBase="webapps" unpackWARs="true"
autoDeploy="false" xmlValidation="false"
xmlNamespaceAware="false">
<Context docBase="browser" path="/browser" reloadable="false"/>
</Host>
</Engine>
</Service>
<Service name="reciver2">
<Connector port="8081" maxHttpHeaderSize="8192" maxThreads="10"
enableLookups="false" acceptCount="1"
connectionTimeout="10000" disableUploadTimeout="true"
useBodyEncodingForURI="true" proxyName="example.pt" proxyPort="80"/>
<Engine name="reciver2" defaultHost="example_app" jvmRoute="host2">
<Host name="example_app" appBase="test_app/example_app" unpackWARs="true"
autoDeploy="false" xmlValidation="false"
xmlNamespaceAware="false">
<Context docBase="example_app" path="/example_app" reloadable="false"/>
</Host>
</Engine>
</Service>
(...Repeted 2 more times.)
tiré de: http://www.coderanch.com/t/84172/Tomcat/listen-multiple-ports
je recommande de lire le fil complet, car il parle de performances avec cette configuration, et aussi des conditions de course possibles.
en plus d'exécuter deux instances Tomcat et d'utiliser L'application ROOT (cela a déjà été dit et est une solution un peu pauvre et inefficace), vous pouvez y arriver en utilisant Apache + Tomcat. Configurer apache pour écouter les deux ports et les transmettre par IP:Port à différentes applications Tomcat. Mais vous avez besoin d'un autre port por tomcat!
configuration d'Apache
listen 8080,8081
...
<VirtualHost *:8080>
ServerName localhost
ProxyPass / http://localhost:8888/app1
ProxyPassReverse / http://localhost:8080/app1
</VirtualHost>
<VirtualHost *:8081>
ServerName localhost
ProxyPass / http://localhost:8888/app2
ProxyPassReverse / http://localhost:8080/app2
</VirtualHost>
ou
listen 80,81
...
<VirtualHost *:80>
ServerName localhost
ProxyPass / http://localhost:8080/app1
ProxyPassReverse / http://localhost:8080/app1
</VirtualHost>
<VirtualHost *:81>
ServerName localhost
ProxyPass / http://localhost:8080/app2
ProxyPassReverse / http://localhost:8080/app2
</VirtualHost>
Tomcat fonctionne dans les ports spécifiés dans:
$CATALINA_HOME/conf/server.xml
comme L'a écrit JB Nizet, configurer deux instances différentes de tomcat, et configurer le serveur de valeurs de ports.xml de façon appropriée.
$CATALINA_HOME/tomcat-8081/conf / server.xml:
<?xml version='1.0' encoding='utf-8'?>
<Server port="8081" ... >
...
</Server>
$CATALINA_HOME/tomcat-8082/conf / server.xml:
<?xml version='1.0' encoding='utf-8'?>
<Server port="8082" ... >
...
</Server>
utilise deux instances Tomcat différentes.
EDIT:
Ou configurer Tomcat comme expliqué dans la réponse à cette question: configuration de Tomcat aider: plusieurs ports ne répond pas