Tomcat i Vhosts
Artykuł ma przedstawić przykład stosowania vhost’ów w Tomcat 5.5.x. Oczywiście artykuł nie opisuje samej instalacji Apache, mod_jk i jego uaktywniania. Tak samo nie opisuję tutaj tworzenia i deploy’owania aplikacji, zależności bliblotek itd. Zakładamy że dostajemy gotowy plik WAR z aplikacją która napewno działa.
Modyfikujemy poszczególne pliki:
/etc/apache2/jk-workers.properties
# The list of Tomcat workers # worker.list=ajp13-domena-1 worker.list=ajp13-domena-2 worker.ajp13-domena-1.port=8009 worker.ajp13-domena-1.host=domena-1 worker.ajp13-domena-1.type=ajp13 worker.ajp13-domena-2.port=8009 worker.ajp13-domena-2.host=domena-2 worker.ajp13-domena-2.type=ajp13 worker.ajp13-domena-1.lbfactor=1 worker.ajp13-domena-2.lbfactor=1
Gdzie domena-1 oraz domena-2 jest nazwą FQDN domeny którą zamierzamy obsługiwać.
/etc/apache/vhosts.d/domena-1.conf
...
JkMount /*.jsp ajp13-domena-1
JkAutoMount /home/vhosts/webapps.domena-1
JkLogFile /home/logs/mod_jk.domena-1
{/VirtualHost}
/etc/apache/vhosts.d/domena-2.conf
...
JkMount /*.jsp ajp13-domena-2
JkAutoMount /home/vhosts/webapps.domena-2
JkLogFile /home/logs/mod_jk.domena-2
{/VirtualHost}
Gdzie katalogi /home/vhosts/webapps.domena-1 oraz /home/vhosts/webapps.domena-2 są miejscem gdzie wrzucamy plik WAR.
/var/lib/tomcat-5.5/conf/server.xml
{Host name="domena-1" appBase="/home/vhosts/webapps.domena-1"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false"}
{Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="domena-1_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/}
{Alias}www.domena-1{/Alias}
{/Host}
{Host name="domena-2" appBase="/home/vhosts/webapps.domena-2"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false"}
{Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="domena-2_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/}
{Alias}www.domena-2{/Alias}
{/Host}
Oczywiście z pliku server.xml hashujemy/usuwamy/remujemy definicję host’a o nazwie localhost. Jeżeli nasza aplikacja na vhost’cie domena-1 wymaga sterującego pliku XML, to umieszczamy go w katalogu: /var/lib/tomcat-5.5/conf/Catalina/domena-1/. A przykładowy plik sterujący może wyglądać tak:
{?xml version="1.0" encoding="UTF-8" ?}
{Context privileged="true" docBase="/home/vhosts/webapps.domena-1/aplikacja" swallowOutput="true" debug="4"}
{ResourceLink global="jdbc/psql" name="jdbc/psql" type="javax.sql.DataSource"/}
{WatchedResource>WEB-INF/web.xml{/WatchedResource}
{/Context}
Jak wszystko i wszędzie, nie musi to działać, wtedy radzę uruchamiać Tomcat’a w trybie Debug i dokładnie oglądać to co się dzieje i z czym Tomcat ma problemy.
Dodaj komentarz


