Mehrere Tomcat Instanzen auf einem Server
Hier eine kurze Beschreibung wie man mehrere Tomcat Instanzen auf einem Server zum laufen bekommt und dieser dann trotzdem noch von den System Updates aktualisiert wird. Dieses HowTo wurde unter Red Hat Enterprise Linux 5 durchgeführt, sollte aber auch unter jeder anderen Distribution laufen. Eventuell sind die Pfade etwas anders.
Im Grunde genommen wird der Tomcat 1 zu 1 nochmal auf dem System installiert, bzw. kopiert und einfach doppelt gestartet. Man kann anhand dieser Anleitung auch mehr als 2 Tomcat Instanzen zum laufen bekommen.
unter Red Hat Linux 5 (Tomcat5)
mkdir /usr/share/tomcat5-test/ cd /usr/share/tomcat5-test ln -s ../tomcat5/bin bin ln -s ../tomcat5/common common ln -s ../tomcat5/server server ln -s ../tomcat5/shared shared cp -rp /etc/tomcat5 /etc/tomcat5-test ln -s /etc/tomcat5-test conf mkdir -p /var/cache/tomcat5-test/work mkdir -p /var/cache/tomcat5-test/temp ln -s /var/cache/tomcat5-test/temp temp ln -s /var/cache/tomcat5-test/work work chown -R root.tomcat /var/cache/tomcat5-test/ chmod 775 -R /var/cache/tomcat5-test/ cp -rp /srv/tomcat5/webapps /srv/tomcat5/webapps-test mkdir /var/log/tomcat5-test chown tomcat.tomcat /var/log/tomcat5-test/ ln -s /var/log/tomcat5-test logs ln -s /srv/tomcat5/webapps-test/ webapps cp -p /etc/sysconfig/tomcat5 /etc/sysconfig/tomcat5-test ln -s /etc/init.d/tomcat5 /etc/init.d/tomcat5-test chkconfig tomcat5-test on
Nachdem nun der 2te Tomcat angelegt wurde, muss dieser noch konfiguriert werden:
Änderungen der /etc/sysconfig/tomcat5-test
CATALINA_HOME="/usr/share/tomcat5-test" JASPER_HOME="/usr/share/tomcat5-test" CATALINA_TMPDIR="/usr/share/tomcat5-test/temp" JAVA_ENDORSED_DIRS="/usr/share/tomcat5-test/common/endorsed" CATALINA_PID=/var/run/tomcat5-test.pid CONNECTOR_PORT=8181
So im Anschluss noch Änderungen an der /etc/tomcat5-test/server.xml:
<!-- Define a non-SSL HTTP/1.1 Connector on port 8181 --> <Connector port="8181" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="17774" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/> <!-- Define an AJP 1.3 Connector on port 11007 --> <Connector port="8109" enableLookups="false" redirectPort="17774" protocol="AJP/1.3" URIEncoding="UTF-8"/>
Nun kann der Tomcat gestartet werden:
/etc/init.d/tomcat5-test start
und sollte unter Port 8181 erreichbar sein:
- http://servername:8181
unter Red Hat Linux 6 (Tomcat6)
mkdir /usr/share/tomcat6-test/
cd /usr/share/tomcat6-test
ln -s ../tomcat6/bin bin
ln -s /usr/share/java/tomcat6 lib
cp -rp /etc/tomcat6 /etc/tomcat6-test
ln -s /etc/tomcat6-test conf
mkdir -p /var/cache/tomcat6-test/work
mkdir -p /var/cache/tomcat6-test/temp
ln -s /var/cache/tomcat6-test/temp temp
ln -s /var/cache/tomcat6-test/work work
chown -R root.tomcat /var/cache/tomcat6-test/
chmod 775 -R /var/cache/tomcat6-test/
mkdir -p /srv/tomcat6-test/logs
chown tomcat:tomcat -R /srv/tomcat6-test
cp -rp /srv/tomcat6/webapps /srv/tomcat6-test/webapps
ln -s /srv/tomcat6-test/logs/ /var/log/tomcat6-test
ln -s /var/log/tomcat6-test logs
ln -s /srv/tomcat6-test/webapps/ webapps
cp -p /etc/sysconfig/tomcat6 /etc/sysconfig/tomcat6-test
ln -s /etc/init.d/tomcat6 /etc/init.d/tomcat6-test
chkconfig tomcat6-test on
Änderung an der Datei: tomcat-users.xml
/etc/tomcat6-test/tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager"/>
<role rolename="tomcat"/>
<role rolename="admin"/>
<role rolename="role1"/>
<user username="admin" password="d9f006324538690c7bb64474d23acc799297e822" roles="admin,manager"/>
</tomcat-users>
Nun noch die Ports umlegen und SHA Verschlüsselung aktivieren aktivieren:
/etc/tomcat6-test/server.xml
<Server port="8105" shutdown="SHUTDOWN">
<Connector port="8181" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="81443" URIEncoding="UTF-8" />
<Connector port="8109" protocol="AJP/1.3" redirectPort="81443" URIEncoding="UTF-8" />
<!-- 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" digest="sha"/>
<!-- Define the default virtual host
/etc/sysconfig/tomcat6-test
CATALINA_BASE="/usr/share/tomcat6-test" CATALINA_HOME="/usr/share/tomcat6-test" JASPER_HOME="/usr/share/tomcat6-test" CATALINA_TMPDIR="/usr/share/tomcat6-test/temp" CATALINA_PID=/var/run/tomcat6-test.pid CONNECTOR_PORT=8181
Nun den Dienst starten:
/etc/init.d/tomcat6-test start
Zum Schluss noch das Rotieren der catalina.out einrichten, dafür folgende Dateien anlegen:
/etc/logrotate.d/tomcat6-test
/var/log/tomcat6-test/catalina.out { copytruncate daily dateext rotate 93 compress missingok create 0644 tomcat tomcat }
unter Ubuntu Linux
mkdir /usr/share/tomcat6-test/ cd /usr/share/tomcat6-test ln –s ../tomcat6/bin bin ln -s ../tomcat6/lib/ lib ln -s ../tomcat6/webapps/ webapps mkdir /var/lib/tomcat6-test cd /var/lib/tomcat6-test ln -s ../tomcat6/common/ common ln -s ../tomcat6/server/ server ln -s ../tomcat6/shared/ shared cp -rp /etc/tomcat6 /etc/tomcat6-test ln -s /etc/tomcat6-test conf mkdir -p /var/cache/tomcat6-test ln -s ../../cache/tomcat6-test/ work chown -R root.tomcat6 /var/cache/tomcat6-test/ chmod 775 -R /var/cache/tomcat6-test/ cp -rp /srv/tomcat6/webapps /srv/tomcat6/webapps-test mkdir /var/log/tomcat6-test chown tomcat6.tomcat6 /var/log/tomcat6-test/ ln -s /var/log/tomcat6-test logs ln -s /srv/tomcat6/webapps-test/ webapps cp /etc/default/tomcat6 /etc/default/tomcat6-test cp -rp /etc/init.d/tomcat6 /etc/init.d/tomcat6-test update-rc.d tomcat6-test defaults 92
folgende Änderungen an folgenden Dateien vornehmen
/etc/init.d/tomcat6-test
NAME=tomcat6-test
/etc/tomcat6-test/server.xml
<Server port="8105" shutdown="SHUTDOWN"> <Connector port="8181" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="17774" /> <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8109" protocol="AJP/1.3" redirectPort="17774" />
Nun kann der Tomcat gestartet werden:
/etc/init.d/tomcat6-test start
und sollte unter Port 8181 erreichbar sein:
- http://servername:8181
Achtung!!! Bei einem Tomcat Update muss das init Skript neu kopiert und editiert werden.