Difference between revisions of "Using Tomcat with Apache (mod jk)"

 
(16 intermediate revisions by 9 users not shown)
Line 1: Line 1:
As standard, Zimbra runs itself on port 80. However, this means you can't use Apache or access any other website through that server. If you are using your server only as a groupware box, this is no bother. But if you are using it in the situation I am with other servers, this is no good. This tutorial will: a.) Configure Tomcat to host on Port 7070 (as in M1) and 7443 for the SSL port b.) Download and install the mod_jk RPM c.) Configure mod_jk to access Zimbra on http://your-custome-apache-server/zimbra/ d.) Configure Apache to start on system boot Original Tutorial from the forums [http://www.zimbra.com/forums/showthread.php?t=706[http://www.geocities.com/at858best/charity-poker-tournament-running-setting-up-tournament.htm ...][http://uk.geocities.com/pill988headache/white-gg-25-pill-pill-identification-sites.htm ...]
+
{{Archive}}{{Unsupported}}
 +
{{Article Infobox|{{admin}}|||{{ZCS 4.5}}}}'''''Note:''' see also [[Hosting_other_sites_with_Zimbra]], [[ZimbraApache]], and [[Zimbra_with_Apache_using_mod_jk]].''
 +
 
 +
As standard, Zimbra runs itself on port 80. However, this means you can't use Apache or access any other website through that server. If you are using your server only as a groupware box, this is no bother. But if you are using it in the situation I am with other servers, this is no good. This tutorial will:
 +
 
 +
a.) Configure Tomcat to host on Port 7070 (as in M1) and 7443 for the SSL port
 +
 
 +
b.) Download and install the mod_jk RPM
 +
 
 +
c.) Configure mod_jk to access Zimbra on http://your-custome-apache-server/zimbra/
 +
 
 +
d.) Configure Apache to start on system boot
 +
 
 +
Original Tutorial from the forums [http://www.zimbra.com/forums/showthread.php?t=706&highlight=mod_jk]
 +
 
 +
== a.) Configure Tomcat to host on Port 7070 (as in M1) ==
 +
 
 +
 
 +
zmprov ms <servername> zimbraMailPort 7070
 +
 
 +
zmprov ms <servername> zimbraMailSSLPort 7443
 +
 
 +
 
 +
== b.) Download and install the mod_jk RPM ==
 +
 
 +
For CentOS 4.2:
 +
 
 +
wget http://mirrors.dotsrc.org/jpackage/1.6/redhat-el-3.0/free/RPMS/mod_jk-ap20-1.2.14.1-2jpp.i386.rpm
 +
rpm -ivh mod_jk-ap20-1.2.14.1-2jpp.i386.rpm
 +
 
 +
For other distributions:
 +
Make sure that Apache has the mod_jk.so module located in the modules folder.
 +
 
 +
 
 +
Edit server.xml
 +
/opt/zimbra/tomcat/conf $ diff -u server.xml.bak server.xml
 +
--- server.xml.bak      2006-02-27 15:03:24.000000000 -0500
 +
+++ server.xml  2006-02-24 13:35:21.000000000 -0500
 +
@@ -34,6 +34,8 @@
 +
        clientAuth="false" sslProtocol="TLS"
 +
        keystoreFile="/opt/zimbra/tomcat/conf/keystore" keystorePass="zimbra"/>
 +
+    <Connector port="8009"
 +
+      enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
 +
    <Engine name="Catalina" defaultHost="localhost">
 +
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
 +
              resourceName="UserDatabase" />
 +
 
 +
 
 +
 
 +
Edit server.xml.in
 +
/opt/zimbra/tomcat/conf $ diff -u server.xml.in.orig server.xml.in
 +
--- server.xml.in.orig  2006-02-27 15:05:21.000000000 -0500
 +
+++ server.xml.in      2006-02-24 12:51:40.000000000 -0500
 +
@@ -34,6 +34,8 @@
 +
        clientAuth="false" sslProtocol="TLS"
 +
        keystoreFile="/opt/zimbra/tomcat/conf/keystore" keystorePass="zimbra"/>
 +
+    <Connector port="8009"
 +
+      enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
 +
    <Engine name="Catalina" defaultHost="localhost">
 +
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
 +
              resourceName="UserDatabase" />
 +
 
 +
 
 +
 
 +
Create the workers.properties file /etc/httpd/conf.d/workers.properties
 +
 
 +
worker.list=localhost
 +
worker.localhost.port=8009
 +
worker.localhost.host=localhost
 +
worker.localhost.type=ajp13
 +
worker.localhost.lbfactor=1
 +
workers.tomcat_home=/opt/zimbra/tomcat5
 +
workers.java_home=/opt/zimbra/java
 +
 
 +
 
 +
Next, configure Apache by editing httpd.conf or vhost specific file.
 +
 
 +
 
 +
# Load mod_jk module
 +
LoadModule    jk_module  modules/mod_jk.so
 +
# Where to find workers.properties
 +
JkWorkersFile /etc/httpd/conf.d/workers.properties
 +
# Where to put jk logs
 +
JkLogFile    /var/log/httpd/mod_jk.log
 +
# Set the jk log level [debug/error/info]
 +
JkLogLevel    debug
 +
# SHM info
 +
JkShmFile  /etc/httpd/logs/jk.shm
 +
JkShmSize  10M
 +
# Select the log format
 +
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
 +
# JkOptions indicate to send SSL KEY SIZE,
 +
JkOptions    +ForwardKeySize +ForwardURICompat -ForwardDirectories
 +
# JkRequestLogFormat set the request format
 +
JkRequestLogFormat    "%w %V %T"
 +
# JkMount points
 +
JkMount /zimbra/* localhost
 +
JkMount /service/* localhost
 +
JkMount /zimbraAdmin/* localhost
 +
 
 +
[NOTE:  the last argument given in the JkMount directive should be the name of the worker defined in workers.properties ]
 +
 
 +
Restart Tomcat and Apache
 +
 
 +
/opt/zimbra/bin/tomcat restart
 +
apachectl restart
 +
 
 +
= Issues =
 +
 
 +
The login should be http only [http://www.zimbra.com/forums/showpost.php?p=9432&postcount=2] It seems that mixed login is broken (Mixed login means that if you hit http://, it redirects to https for login then returns to http for session. If you hit https:// originally, the login is in https, and the session continues in https).
 +
 
 +
 
 +
= If it still wont work =
 +
 
 +
If it still doesn't work, perhaps this will help: [[Zimbra_with_Apache_using_mod_jk]].
 +
 
 +
 
 +
{{Article Footer|Unknown|2/27/2006}}
 +
 
 +
[[Category:Customizing ZCS]]
 +
[[Category:ZCS 4.5]]

Latest revision as of 17:29, 24 March 2015

Admin Article

Article Information

This article applies to the following ZCS versions.

ZCS 4.5 Article ZCS 4.5

Note: see also Hosting_other_sites_with_Zimbra, ZimbraApache, and Zimbra_with_Apache_using_mod_jk.

As standard, Zimbra runs itself on port 80. However, this means you can't use Apache or access any other website through that server. If you are using your server only as a groupware box, this is no bother. But if you are using it in the situation I am with other servers, this is no good. This tutorial will:

a.) Configure Tomcat to host on Port 7070 (as in M1) and 7443 for the SSL port

b.) Download and install the mod_jk RPM

c.) Configure mod_jk to access Zimbra on http://your-custome-apache-server/zimbra/

d.) Configure Apache to start on system boot

Original Tutorial from the forums [1]

a.) Configure Tomcat to host on Port 7070 (as in M1)

zmprov ms <servername> zimbraMailPort 7070
zmprov ms <servername> zimbraMailSSLPort 7443


b.) Download and install the mod_jk RPM

For CentOS 4.2:

wget http://mirrors.dotsrc.org/jpackage/1.6/redhat-el-3.0/free/RPMS/mod_jk-ap20-1.2.14.1-2jpp.i386.rpm
rpm -ivh mod_jk-ap20-1.2.14.1-2jpp.i386.rpm

For other distributions: Make sure that Apache has the mod_jk.so module located in the modules folder.


Edit server.xml

/opt/zimbra/tomcat/conf $ diff -u server.xml.bak server.xml
--- server.xml.bak      2006-02-27 15:03:24.000000000 -0500
+++ server.xml  2006-02-24 13:35:21.000000000 -0500
@@ -34,6 +34,8 @@
        clientAuth="false" sslProtocol="TLS"
        keystoreFile="/opt/zimbra/tomcat/conf/keystore" keystorePass="zimbra"/>
+    <Connector port="8009"
+       enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase" />


Edit server.xml.in

/opt/zimbra/tomcat/conf $ diff -u server.xml.in.orig server.xml.in
--- server.xml.in.orig  2006-02-27 15:05:21.000000000 -0500
+++ server.xml.in       2006-02-24 12:51:40.000000000 -0500
@@ -34,6 +34,8 @@
        clientAuth="false" sslProtocol="TLS"
        keystoreFile="/opt/zimbra/tomcat/conf/keystore" keystorePass="zimbra"/>
+    <Connector port="8009"
+       enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase" />


Create the workers.properties file /etc/httpd/conf.d/workers.properties

worker.list=localhost
worker.localhost.port=8009
worker.localhost.host=localhost
worker.localhost.type=ajp13
worker.localhost.lbfactor=1
workers.tomcat_home=/opt/zimbra/tomcat5
workers.java_home=/opt/zimbra/java


Next, configure Apache by editing httpd.conf or vhost specific file.


# Load mod_jk module
LoadModule    jk_module  modules/mod_jk.so
# Where to find workers.properties
JkWorkersFile /etc/httpd/conf.d/workers.properties
# Where to put jk logs
JkLogFile     /var/log/httpd/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel    debug
# SHM info
JkShmFile   /etc/httpd/logs/jk.shm
JkShmSize   10M
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
JkOptions     +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat     "%w %V %T"
# JkMount points
JkMount /zimbra/* localhost
JkMount /service/* localhost
JkMount /zimbraAdmin/* localhost

[NOTE: the last argument given in the JkMount directive should be the name of the worker defined in workers.properties ]

Restart Tomcat and Apache

/opt/zimbra/bin/tomcat restart
apachectl restart

Issues

The login should be http only [2] It seems that mixed login is broken (Mixed login means that if you hit http://, it redirects to https for login then returns to http for session. If you hit https:// originally, the login is in https, and the session continues in https).


If it still wont work

If it still doesn't work, perhaps this will help: Zimbra_with_Apache_using_mod_jk.


Verified Against: Unknown Date Created: 2/27/2006
Article ID: https://wiki.zimbra.com/index.php?title=Using_Tomcat_with_Apache_(mod_jk) Date Modified: 2015-03-24



Try Zimbra

Try Zimbra Collaboration with a 60-day free trial.
Get it now »

Want to get involved?

You can contribute in the Community, Wiki, Code, or development of Zimlets.
Find out more. »

Looking for a Video?

Visit our YouTube channel to get the latest webinars, technology news, product overviews, and so much more.
Go to the YouTube channel »

Jump to: navigation, search