Tomcat integrācija ar Apache
Must prepare before: Apache tīmekļa serveris and Tomcat tīmekļa lietotņu serveris |
Instalē Apache2 konektoru Tomcat tīmekļa lietotņu serverim:
sudo apt-get install libapache2-mod-jk
a2enmod jk- tad "CATALINA_HOME" jeb "tomcat_home" vērtība ir "/usr/share/tomcat7".
Apskata Tomcat palaišanas skriptu /etc/init.d/tomcat7 (ja izmanto iebūvēto serveri, vai .../tomcat/bin/startup.sh, ja izmanto atsevišķi uzstādīto serveri). Izsecina no turienes Tomcat saknes mapi (ko dažreiz sauc arī par CATALINA_HOME). Piemēram, ja skripts izskatās šādi:
NAME=tomcat7
DESC="Tomcat 7 servlet engine"
CATALINA_HOME=/usr/share/$NAME Apskata failu /etc/libapache2-mod-jk/workers.properties. Nomaina workers.tomcat_home vērtību uz tomcat7 un workers.java_home uz /usr/lib/jvm/java-6-openjdk-amd64/jre (ja izmanto OpenJDK), lai tas izskatās, piemēram, sekojoši:
...
workers.tomcat_home = /usr/share/tomcat7
workers.java_home = "/usr/lib/jvm/java-6-openjdk-amd64/jre"
...Pārbauda citus iestatījumus:
...
worker.list = ajp13_worker
worker.ajp13_worker.port = 8009
worker.ajp13_worker.host = localhost
worker.ajp13_worker.type = ajp13
...Ja vērtības nesakrīt, failu atbilstoši jārediģē. Citus iestatījumus atstāj neaiztiktus.
Pārliecās, ka pastāv /etc/apache2/mods-enabled/jk.load fails ar sekojošu saturu:
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.soFaila /etc/apache2/apache2.conf beigās pievieno sekojošas rindas:
...
# Send JSPs for context "/japp*" to ajp13_worker
JkMount /japp ajp13_worker
JkMount /japp/* ajp13_workerKur /japp ir Javas tīmekļa lietotne, kuras URLus Apache nosūtīs izpildei uz Tomcat. Līdzīgi var pievienot arī citas lietotnes.
Tomcat konfigurācijas failā /etc/tomcat7/server.xml atkomentē AJP konektora iestatījumus:
...
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
URIEncoding="UTF-8" />
...Pārstartē tomcat:
sudo /etc/init.d/tomcat7 restart- Konektora AJP portam numuram ir jāsakrīt ar "worker.ajp13_worker.port" /etc/libapache2-mod-jk/workers.properties failā norādīto vērtību (skat. augstāk).
Pārliecinās, ka tomcat lietotņu serveris klausās uz 8009 portu:
netstat -ln | grep :8009 Failā /etc/apache2/sites-available/default pievieno rindu:
<VirtualHost *:80>
...
DocumentRoot /var/www
JkMountCopy On
...- Ja Apache ir vēl kāda vietne (piem., SSL), līdzīgi izmaina arī tās iestatījumus.
Pārstartē Apache:
sudo /etc/init.d/apache2 restart
Kļūdu novēršana
Izpēta failu /var/log/apache2/mod_jk.log. Ja tajā parādās kļūdas:
...
[[Mon Apr 22 23:00:30 2013]] [[1623:139676589676352]] [[error]] uri_worker_map_ext::jk_uri_worker_map.c
(506): Could not find worker with name 'jk-manager' in uri map post processing.
[[Mon Apr 22 23:00:30 2013]] [[1623:139676589676352]] [[error]] uri_worker_map_ext::jk_uri_worker_map.c
(506): Could not find worker with name 'jk-status' in uri map post processing.
...Failā /etc/apache2/mods-enabled/jk.conf nokomentē rindas:
...
# <Location /jk-status>
# # Inside Location we can omit the URL in JkMount
# JkMount jk-status
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
# </Location>
# <Location /jk-manager>
# # Inside Location we can omit the URL in JkMount
# JkMount jk-manager
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
# </Location>
...
Saites
Alternatīva
Created by Valdis Vītoliņš on 2008-08-09 14:03
Last modified by Valdis Vītoliņš on 2021-04-13 14:30