Instructions for installing Tomcat as a servlet container for Apache 0 on unix. For example, this will allow Tomcat’s examples, found at



Download 54.19 Kb.
Date29.07.2017
Size54.19 Kb.
#24215
TypeInstructions

Connecting Apache 2.0.43 to Tomcat 4.1.12

(Using JK Web Server Connector)




Configuring the Connector

The following section will contain instructions for installing Tomcat as a servlet container for Apache 2.0 on UNIX. For example, this will allow Tomcat’s examples, found at http://localhost:8080/examples to execute properly on requests for port 80. (i.e. http://localhost/examples). This also allows Apache to be the web server that serves up ALL static content for both legacy applications (those in the DocumentRoot) and those included in web applications.


At this point, you should have a working Apache installation serving content on port 80, and a working Tomcat installation serving HTTP requests on port 8080. (The Tomcat examples included with the Tomcat installation should work).
These instructions have been tested on Red Hat 8.0 and Solaris 2.8.
The Connector Overview
To connect Apache and Tomcat, you need a connector. My choice, (for reasons explained below) is mod_jk.
As of 9/05/2002, there are 3 to choose from:


Connector

Description

mod_jk (AJP13)

mod_jk is the older but more stable version, which supports load balancing and non-standard web application locations.
At the time of this writing, this connector would be the best choice since it has been around for awhile and is very stable.
NOTE: There are known bugs when using mod_jk and Tomcat 4.0.1 or 4.0.2, so you MUST use 4.0.3 or greater.

mod_webapp (WARP)

mod_webapp is newer (it first appeared with Tomcat 4.0.x) than mod_jk and still has some bugs.
It has several limitations (no differentiation between static and dynamic content, so no use for Apache).
Unless you have some other reason for using mod_webapp, I recommend sticking with mod_jk until the former reaches satisfactory stability.

mod_jk2

Is still fairly new. Would want something a bit more stable.


DSO Support in Apache
Make sure that the version of Apache you have installed has DSO support:
% $APACHE_HOME/bin/httpd -l
If you see “mod_so.c” in the output, DSO support is available. If it's missing, you may have to recompile or reinstall Apache. (See the chapter in this book for installing Apache)

Obtaining mod_jk
You have two choices in obtaining the proper mod_jk.so connector library; compiling it from source or simply getting the binary. You can save yourself a tremendous amount of aggravation by simply downloading the binary you need. Using RedHat 8.0, I could not get the “configure” or the “ant” option to create the required mod_jk.so file. I had to breakdown and download the binaries.
Binaries can be found on:
http://www.johnturner.com/howto/apache-tomcat-howto.html#binaries

Copy mod_jk.so
Copy the mod_jk.so library to the Apache “modules” directory:
% cp mod_jk.so $APACHE_HOME/modules

% chmod 755 $APACHE_HOME/modules/mod_jk.so



Configuring Tomcat

When integrating Tomcat and Apache, we will need to modify the following files:




  • server.xml

Tomcat’s main configuration file. Found in $CATALINA_HOME/conf.


  • worker.properties

Tomcat’s configuration file for setting instances/workers. This can be placed anywhere that mod_jk has read access.


  • mod_jk.conf

Tomcat’s configuration file for integration with Apache. Found in $CATALINA_HOME/conf/auto.


  • httpd.conf

Apache’s main configuration. Found in $APACHE_HOME/conf.
Edit server.xml File
Edit the file $CATALINA_HOME/conf/server.xml as follows


  1. Add the following lines immediately after the declaration



modJk="/u02/app/apache/modules/mod_jk.so"

jkDebug="info"

workersConfig="/u02/app/tomcat/conf/jk/workers.properties"

jkLog="/u02/app/tomcat/logs/mod_jk.log"/>




  1. Locate the entry for “AJP 1.3 Connector”. It will have a default port already defined for port 8009. You can simply do a search for the first occurrence of “8009”.

If you needed to change the port number from 8009 to 8029 (see sections above for Oracle and Linux 7.x users), make that change for this entry. In most cases (users of RedHat 8.0+) this will not be necessary.


Realize that the default Apache connector starting with Tomcat 4.x is JK2, not JK.

You will need to comment out the Connector on port 8009 with the className of “org.apache.coyote.tomcat4.CoyoteConnector”.


Then uncomment the Connector element right below it on port 8009 that has a className of “org.apache.ajp.tomcat4.Ajp13Connector”.
The element you will want exposed (uncommented) is:


1.3 Connector on port 8009 -->

port="8009" minProcessors="5" maxProcessors="75"

acceptCount="10" debug="0"/>




  1. After any declaration, add a listener




append="true" />





  1. Locate and change any reference of “localhost” to the value of “ServerName” set in $APACHE_HOME/conf/httpd.conf file. This will typically be the name of the server hosting Apache/Tomcat.



Create “jk” directory
Create the following directory under $CATALINA_HOME/conf :
cd $CATALINA_HOME/conf

mkdir jk
Create “auto” directory


Create the following directory under $CATALINA_HOME/conf :
cd $CATALINA_HOME/conf

mkdir auto


Create workers.properties files
In the “jk” directory you just created, create a file called “workers.properties”.


workers.tomcat_home=/u02/app/tomcat

workers.java_home=$(JAVA_HOME)

ps=/
worker.list=ajp13
worker.ajp13.port=8009

worker.ajp13.host=

worker.ajp13.type=ajp13



Bounce the Tomcat Server
cd $CATALINA_HOME/bin

./shutdown.sh

./startup.sh
Check for and rename the created mod_jk.conf file
After starting the Tomcat server, you should have a generated mod_jk.conf file in the $CATALINA_HOME/conf/auto directory. Now rename the file mod_jk.conf to mod_jk_custom.conf and change any of the entries that you want Apache to hand off to the Tomcat container.
% cd $CATALINA_HOME/conf/auto

% ls -l
-rw-r--r-- 1 oracle dba 589 Jun 2 21:17 mod_jk.conf


% cp mod_jk.conf mod_jk_custom.conf

Here is an example mod_jk_custom.conf file that changes both the “examples” and “development” web application. As you can see, by default, Tomcat says that all requests for a particular web application should be handed to the Tomcat instance. (Remember that Tomcat can also handle static contact like HTML and images). In out case, we ONLY want JSP and Servlets to be processed by the Tomcat container while static content like HTML and images are being served by the Apache web server.




########## Auto generated on Fri Dec 06 01:33:31 EST 2002##########

LoadModule jk_module /u02/app/apache/modules/mod_jk.so




JkWorkersFile "/u02/app/tomcat/conf/jk/workers.properties"

JkLogFile "/u02/app/tomcat/logs/mod_jk.log"


JkLogLevel info

ServerName cartman.ads.com


JkMount /admin ajp13

JkMount /admin/* ajp13


JkMount /webdav ajp13

JkMount /webdav/* ajp13


JkMount /development/*.jsp ajp13

JkMount /development/servlet/* ajp13
JkMount /examples/*.jsp ajp13

JkMount /examples/servlet/* ajp13
JkMount /tomcat-docs ajp13

JkMount /tomcat-docs/* ajp13


JkMount /ora ajp13

JkMount /ora/* ajp13


JkMount /manager ajp13

JkMount /manager/* ajp13







Edit the httpd.conf file
Add the following lines to the end of the file. This would include any of the Alias’s used to serve up any static content in your web applications and the configured JkMount directives by including the mod_jk_custom.conf file.

...
# +-----------------------------------------------+

# | EXAMPLES |

# +-----------------------------------------------+


# Create an Alias for examples

Alias /examples "/u02/app/tomcat/webapps/examples"


# Now allow access to this directory by setting

# the required Apache directives.



Options Indexes FollowSymLinks ExecCGI Includes MultiViews

AllowOverride All

Order allow,deny

Allow from all


# +-----------------------------------------------+

# | DEVELOPMENT |

# +-----------------------------------------------+
# Create an Alias for examples

Alias /development "/u02/app/tomcat/webapps/development"


# Now allow access to this directory by setting

# the required Apache directives.



Options Indexes FollowSymLinks ExecCGI Includes MultiViews

AllowOverride All

Order allow,deny

Allow from all


# +-----------------------------------------------+

# | PROTECT WEB-INF DIRECTORY |

# +-----------------------------------------------+
# Now prevent any unauthorized access to

# the contents of WEB-INF



AllowOverride None

Deny From All


Include /u02/app/tomcat/conf/auto/mod_jk_custom.conf
...



NOTE: If you were not able to create the mod_jk.conf file, you can manually add the Tomcat directives to your httpd.conf as follows:


  1. Add the following to the LoadModule section:




LoadModule jk_module /u02/app/apache/modules/mod_jk.so









  1. Add the following to the end of the httpd.conf file:




JkWorkersFile "/u02/app/tomcat/conf/jk/workers.properties"

JkLogFile "/u02/app/tomcat/logs/mod_jk.log"


JkLogLevel info

ServerName jeffreyh3.comanage.net


JkMount /admin ajp13

JkMount /admin/* ajp13


JkMount /webdav ajp13

JkMount /webdav/* ajp13


JkMount /examples/*jsp ajp13

JkMount /examples/servlet/* ajp13


JkMount /tomcat-docs ajp13

JkMount /tomcat-docs/* ajp13


JkMount /manager ajp13

JkMount /manager/* ajp13








Start the Apache HTTP Server
% su -

% /u02/app/apache/bin/apachectl start




Testing the Configuration



Check the standalone Apache Configuration
http://localhost
Check the standalone Tomcat Servlet Container
http://localhost:8080
This will use the HTTP Connector from the Tomcat container to answer the request.
Check the standalone Tomcat Servlet Examples
http://localhost:8080/examples/servlet/RequestInfoExample
Check the Tomcat / Apache Integration
http://localhost/examples/servlet/RequestInfoExample

http://localhost/examples/servlet/HelloWorldExample
Check to see if Apache is serving the static content by using the “examples” web application
http://localhost/examples
This test will confirm that within the “examples” web application, the Apache web server is answering and handling requests for static content. (Content that is neither JSP or /servlet/*). If everything is set up correctly, you should see something like the following:


Download 54.19 Kb.

Share with your friends:




The database is protected by copyright ©ru.originaldll.com 2024
send message

    Main page