Tuesday, January 4, 2011

Set up mod_jk and apache2

1. Install mod_jk

apt-get install libapache2-mod-jk

2. Under /etc/apache2/mods-enabled, create jk.conf and add the contents below.

# Sample mod_jk configuration
# for Apache 2
#
# for all commands/options available see the manual
# provided in libapache-mod-jk-doc package.

# The location where mod_jk will find the workers definitions
JkWorkersFile /etc/libapache2-mod-jk/workers.properties

# The location where mod_jk is going to place its log file
JkLogFile /var/log/apache2/mod_jk.log

# The log level:
# - info log will contain standard mod_jk activity (default).
# - warn log will contain non fatal error reports.
# - error log will contain also error reports.
# - debug log will contain all information on mod_jk activity
# - trace log will contain all tracing information on mod_jk activity
JkLogLevel info


# Assign specific URLs to Tomcat. In general the structure of a
# JkMount directive is: JkMount [URL prefix] [Worker name]


# send all requests ending in .jsp to ajp13_worker
# send all requests ending /servlet to ajp13_worker
#JkMount /*/servlet/ ajp13_worker

# JkUnmount directive acts as an opposite to JkMount and blocks access
# to a particular URL. The purpose is to be able to filter out the
# particular content types from mounted context.

# do not send requests ending with .gif to ajp13_worker
#JkUnMount /servlet/*.gif ajp13_worker


# JkMount / JkUnMount directives can also be used inside
# sections of your httpd.conf file.

3. Configure workers.
Under /etc/libapache2-mod-jk, create workers.properties and add the contents below. Normally this file already existed there, what you should do is checking the tomcat-home and jvm path correctly or not.


# workers.properties -
#
# This file is a simplified version of the workers.properties supplied
# with the upstream sources. The jni inprocess worker (not build in the
# debian package) section and the ajp12 (deprecated) section are removed.
#
# As a general note, the characters $( and ) are used internally to define
# macros. Do not use them in your own configuration!!!
#
# Whenever you see a set of lines such as:
# x=value
# y=$(x)\something
#
# the final value for y will be value\something
#
# Normaly all you will need to do is un-comment and modify the first three
# properties, i.e. workers.tomcat_home, workers.java_home and ps.
# Most of the configuration is derived from these.
#
# When you are done updating workers.tomcat_home, workers.java_home and ps
# you should have 3 workers configured:
#
# - An ajp13 worker that connects to localhost:8009
# - A load balancer worker
#
#

# OPTIONS ( very important for jni mode )

#
# workers.tomcat_home should point to the location where you
# installed tomcat. This is where you have your conf, webapps and lib
# directories.
#
workers.tomcat_home=/usr/local/tomcat

#
# workers.java_home should point to your Java installation. Normally
# you should have a bin and lib directories beneath it.
#
workers.java_home=/usr/lib/jvm/java-6-sun

#
# You should configure your environment slash... ps=\ on NT and / on UNIX
# and maybe something different elsewhere.
#
ps=/

#
#------ ADVANCED MODE ------------------------------------------------
#---------------------------------------------------------------------
#

#
#------ worker list ------------------------------------------
#---------------------------------------------------------------------
#
#
# The workers that your plugins should create and work with
#
worker.list=ajp13_worker

#
#------ ajp13_worker WORKER DEFINITION ------------------------------
#---------------------------------------------------------------------
#

#
# Defining a worker named ajp13_worker and of type ajp13
# Note that the name and the type do not have to match.
#
worker.ajp13_worker.port=8009
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13
#
# Specifies the load balance factor when used with
# a load balancing worker.
# Note:
# ----> lbfactor must be > 0
# ----> Low lbfactor means less work done by the worker.
worker.ajp13_worker.lbfactor=1

#
# Specify the size of the open connection cache.
#worker.ajp13_worker.cachesize

#
#------ DEFAULT LOAD BALANCER WORKER DEFINITION ----------------------
#---------------------------------------------------------------------
#

#
# The loadbalancer (type lb) workers perform wighted round-robin
# load balancing with sticky sessions.
# Note:
# ----> If a worker dies, the load balancer will check its state
# once in a while. Until then all work is redirected to peer
# workers.
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=ajp13_worker


4.Configure the URI to worker mapping.
for example

ServerAdmin dang@company.net
ServerName example.company.net
DocumentRoot /home/lamp/webroot/nanocycle
JkMount /*.jsp ajp13_worker
JkMount /routecalc* ajp13_worker
JkMount /Logger* ajp13_worker
JkMount /Params* ajp13_worker

Options FollowSymLinks
AllowOverride None


Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all


deny from all

DirectoryIndex index.php index.html index.jsp
LogLevel error
CustomLog /var/log/apache2/access.log combined
ServerSignature Off


5.Enable worker in tomcat
Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

config a host for worker, if use localhost, noneed
otherwise need create a new one:

forexample, a virtualhost for nanocylebooking
cause jk port call locally, add a record in host file, to define a local ip for nanocycle, then in worker.properties, connect to nanocycle like locally

nanocycle.cbdweb.net


6. Restart apache,tomcat
# /etc/init.d/apache2 restart

No comments:

Post a Comment