From: jac_legend_...@hotmail.com
To: users@tomcat.apache.org
Subject: Trouble connecting Tomcat 7.0 with Apache Server 2.2 (reposting
question - hopefully this formats better)
Date: Fri, 4 Mar 2011 02:29:15 +1300
Reposting the same question I posted a minute ago due to weird formatting
issues. Hopefully this email fixes it.
I am trying to
connect Tomcat 7.0 and Apache Server 2.2 using Windows 7.0. I created a .jsp
file to test if my setup was correct under "C:\Program Files (x86)\Apache
Software Foundation\Tomcat 7.0\webapps\sitepoint\count.jsp". I can
successfully load the count.jsp file by entering
http://localhost:8080/sitepoint/count.jsp into Google Chrome, however when I
enter http://localhost/sitepoint/count.jsp into Chrome I get an "Opps!
This link appears to be broken." message. Therefore it appears to be an
error in my configurations. Unfortunately I'm puzzled as to the problem and
have been trying to look for a solution for the past 2 days without any luck.
Here are the details:
Platform: Windows
7.0
Tomcat: 7.0
Apache Server:
2.2
JDK: C:\Program
Files (x86)\Java\jdk1.6.0_17
Tomcat:
C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0
Apache:
C:\Program Files (x86)\Apache Software Foundation\Apache2.2
This is the
process I went through.
1. Installed
Apache Server and Tomcat
2. Downloaded the
Apache Connector binaries: mod_jk-1.2.31-httpd-2.2.3.so. Renamed this to
mod_jk.so and put it in the modules directory of Apache2.2.
3. Downloaded the
source files for the same connector and extracted the workers.properties file
and placed that into the conf directory of Apache2.2. I left this file
unchanged, not sure if I am meant to alter it.
4. I then altered
the httpd.conf configurations file inside the conf directory of Apache2.2 and
added the following lines (not sure if /easywayserver/ should be used for my
example I described earlier) :
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile "logs/mod_jk.log"
JkLogLevel error
JkMount /easywayserver loadbalancer
JkMount /easywayserver/* loadbalancer
5. Restarted
Apache server.
Here is a snipper
of my log modjk.log
[Fri Mar 04
02:19:51.436 2011] [2276:6344] [info] jk_handler::mod_jk.c (2635): Could not
find a worker for worker name=loadbalancer
[Fri Mar 04
02:19:55.658 2011] [2368:3752] [info] init_jk::mod_jk.c (3198): mod_jk/1.2.31
(1026297) initialized
[Fri Mar 04
02:19:55.658 2011] [2368:3752] [error] uri_worker_map_ext::jk_uri_worker_map.c
(506): Could not find worker with name 'loadbalancer' in uri map post
processing.
[Fri Mar 04
02:19:55.658 2011] [2368:3752] [error] uri_worker_map_ext::jk_uri_worker_map.c
(506): Could not find worker with name 'loadbalancer' in uri map post
processing.
[Fri Mar 04
02:19:55.737 2011] [5964:6660] [info] init_jk::mod_jk.c (3198): mod_jk/1.2.31
(1026297) initialized
[Fri Mar 04
02:19:55.737 2011] [5964:6660] [error] uri_worker_map_ext::jk_uri_worker_map.c
(506): Could not find worker with name 'loadbalancer' in uri map post
processing.
[Fri Mar 04
02:19:55.737 2011] [5964:6660] [error] uri_worker_map_ext::jk_uri_worker_map.c
(506): Could not find worker with name 'loadbalancer' in uri map post
processing.
[Fri Mar 04
02:19:55.782 2011] [5964:6660] [info] init_jk::mod_jk.c (3198): mod_jk/1.2.31
(1026297) initialized
[Fri Mar 04
02:19:55.782 2011] [5964:6660] [error] uri_worker_map_ext::jk_uri_worker_map.c
(506): Could not find worker with name 'loadbalancer' in uri map post
processing.
[Fri Mar 04
02:19:55.782 2011] [5964:6660] [error] uri_worker_map_ext::jk_uri_worker_map.c
(506): Could not find worker with name 'loadbalancer' in uri map post
processing.
Here is the
workers.properties file
===Start of
workers.properties==========================
# Licensed to the
Apache Software Foundation (ASF) under one or more
# contributor
license agreements. See the NOTICE file
distributed with
# this work for
additional information regarding copyright ownership.
# The ASF
licenses this file to You under the Apache License, Version 2.0
# (the
"License"); you may not use this file except in compliance with
# the
License. You may obtain a copy of the
License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required
by applicable law or agreed to in writing, software
# distributed under
the License is distributed on an "AS IS" BASIS,
# WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License
for the specific language governing permissions and
# limitations
under the License.
# Note that the
distributed version of this file requires modification
# before it is
usable.
#
# Reference
documentation: http://tomcat.apache.org/connectors-doc/reference/workers.html
#
# 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
# Define two
status worker:
# - jk-status for
read-only use
# - jk-manager
for read/write use
worker.list=jk-status
worker.jk-status.type=status
worker.jk-status.read_only=true
worker.list=jk-manager
worker.jk-manager.type=status
# We define a
load balancer worker
# with name
"balancer"
worker.list=balancer
worker.balancer.type=lb
#
error_escalation_time: seconds, default = recover_time/2 (=30)
# Determines, how
fast a detected error should switch from
# local error
state to global error state
# Since: 1.2.28
worker.balancer.error_escalation_time=0
# -
max_reply_timeouts: number, default=0
# If there are to many reply timeouts, a
worker
# is put into the error state, i.e. it will
become
# unavailable for all sessions residing on the
respective
# Tomcat. The number of tolerated reply
timeouts is
# configured with max_reply_timeouts. The
number of
# timeouts occuring is divided by 2 once a
minute and the
# resulting counter is compared against max_reply_timeouts.
# If you set max_reply_timeouts to N and the
errors are
# occuring equally distributed over time, you
will
# tolerate N/2 errors per minute. If they
occur in a burst
# you will tolerate N errors.
# Since: 1.2.24
worker.balancer.max_reply_timeouts=10
# Now we add
members to the load balancer
# First member is
"node1", most
# attributes are
inherited from the
# template
"worker.template".
worker.balancer.balance_workers=node1
worker.node1.reference=worker.template
worker.node1.host=localhost
worker.node1.port=8109
# Activation
allows to configure
# whether this
node should actually be used
# A: active (use
node fully)
# D: disabled
(only use, if sticky session needs this node)
# S: stopped (do
not use)
# Since: 1.2.19
worker.node1.activation=A
# Second member
is "node2", most
# attributes are
inherited from the
# template
"worker.template".
worker.balancer.balance_workers=node2
worker.node2.reference=worker.template
worker.node2.host=localhost
worker.node2.port=8209
# Activation
allows to configure
# whether this
node should actually be used
# A: active (use
node fully)
# D: disabled
(only use, if sticky session needs this node)
# S: stopped (do
not use)
# Since: 1.2.19
worker.node2.activation=A
# Finally we put
the parameters
# which should
apply to all our ajp13
# workers into
the referenced template
# - Type is ajp13
worker.template.type=ajp13
# -
socket_connect_timeout: milliseconds, default=0
# Since: 1.2.27
worker.template.socket_connect_timeout=5000
# -
socket_keepalive: boolean, default=false
# Should we send TCP keepalive packets
# when connection is idle (socket option)?
worker.template.socket_keepalive=true
# - ping_mode:
Character, default=none
# When should we use cping/cpong connection
probing?
# C = directly after establishing a new
connection
# P = directly before sending each request
# I = in regular intervals for idle
connections
# using the watchdog thread
# A = all of the above
# Since: 1.2.27
worker.template.ping_mode=A
# - ping_timeout:
milliseconds, default=10000
# Wait timeout for cpong after cping
# Can be overwritten for modes C and P
# Using connect_timeout and prepost_timeout.
# Since: 1.2.27
worker.template.ping_timeout=10000
# -
connection_pool_minsize: number, default=connection_pool_size
# Lower pool size when shrinking pool due
# to idle connections
# We want all connections to be closed when
# idle for a long time in order to prevent
# firewall problems.
# Since: 1.2.16
worker.template.connection_pool_minsize=0
# -
connection_pool_timeout: seconds, default=0
# Idle time, before a connection is eligible
# for being closed (pool shrinking).
# This should be the same value as
connectionTimeout
# in the Tomcat AJP connector, but there it is
# milliseconds, here seconds.
worker.template.connection_pool_timeout=600
# -
reply_timeout: milliseconds, default=0
# Any pause longer than this timeout during
waiting
# for a part of the reply will abort handling
the request
# in mod_jk. The request will proceed running
in
# Tomcat, but the web server resources will be
freed
# and an error is send to the client.
# For individual requests, the timeout can be
overwritten
# by the Apache environment variable JK_REPLY_TIMEOUT.
# JK_REPLY_TIMEOUT since: 1.2.27
worker.template.reply_timeout=300000
# -
recovery_options: number, default=0
# Bit mask to configure, if a request, which
was send
# to a backend successfully, should be retried
on another backend
# in case there's a problem with the response.
# Value "3" disables retries,
whenever a part of the request was
# successfully send to the backend.
worker.template.recovery_options=3
===End of
workers.properties===========================