Hi All,
I am having trouble with Name Virtual Hosting for Apache 1.3.27 and tomcat
4.1.18 and mod_jk. Maybe someone can see something that I have overlooked.
And I apologize ahead of time if this is jumbled, but I have been at this
all day and my brain is pretty fried. :--)
I have one server with four name-based virtual hosts:
host1-app1
host1-app2
host1-app3
host1-app4
Only one of them needs tomcat - host1-app4. I tried adding/loading the jk
module in my httpd.conf directly and putting all the jk directives in my
virtual host container for that app, but then I got errors in my
/var/apache/logs/error_log saying:
[Thu Mar 27 18:22:27 2003] [error] Error while opening the workers, jk will
not work
[Thu Mar 27 18:22:28 2003] [error] (2)No such file or directory: Error while
opening the workers, jk will not work
So I am guessing that there was something wrong with the config. But, If I
just take out the jk directives (also removing the load/add module for jk),
put them in an include file and load jk from there then I get no errors. The
only problem is that then I get no page displayed when I try to go to one of
the pages which should be served by cocoon for host1-app4.
log messages from mod_jk.log:
[Thu Mar 27 18:44:07 2003] [jk_uri_worker_map.c (460)]: Into
jk_uri_worker_map_t::map_uri_to_worker
[Thu Mar 27 18:44:07 2003] [jk_uri_worker_map.c (477)]: Attempting to map
URI '/DerivativesAdminWebsite'
[Thu Mar 27 18:44:07 2003] [jk_uri_worker_map.c (599)]:
jk_uri_worker_map_t::map_uri_to_worker, done without a match
And you can see in apache error log that it is looking in the doc root
rather than tomcat:
[Thu Mar 27 18:47:15 2003] [error] [client 140.60.36.44] File does not
exist: /var/apache/htdocs/app4/cocoon/
server.xml:
<Server port="8005" shutdown="SHUTDOWN" debug="2">
<Listener
className="org.apache.catalina.mbeans.ServerLifecycleListener" debug="0" />
<Listener
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
debug="0" />
<!-- Global JNDI resources -->
<GlobalNamingResources>
<!-- Test entry for demonstration purposes -->
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users -->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved">
</Resource>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
<Service name="Tomcat-host1">
<!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8009" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="5" connectionTimeout="0"
useURIValidationHack="false"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
<Engine name="Engine-host1" defaultHost="host1" debug="2">
<!--
<Valve className="org.apache.catalina.valves.RequestDumperValve"/>
-->
<!-- Global logger unless overridden at lower levels -->
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="catalina_log." suffix=".txt"
timestamp="true"/>
<!-- Because this Realm is here, an instance will be shared globally
-->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
debug="0" resourceName="UserDatabase" />
<!-- Define the default virtual host -->
<Host name="host1-app4.com" address="<ip here>" debug="2"
appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="/var/tomcat/logs" prefix="host1_access_log."
suffix=".txt"
pattern="common" resolveHosts="false"/>
<Logger className="org.apache.catalina.logger.FileLogger"
directory="/var/tomcat/logs" prefix="host1." suffix=".txt"
timestamp="true"/>
</Host>
</Engine>
</Service>
</Server>
$TOMCAT_HOME/conf/jk/workers.properties:
workers.tomcat_home=/usr/local/tomcat
workers.java_home=$(JAVA_HOME)
ps=/
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=nutmeg
worker.ajp13.type=ajp13
worker.inprocess.type=jni
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)tomcat.jar
worker.inprocess.cmd_line=start
worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)lib$(ps)sparcv9$(p
s)server$(ps)libjvm.so
worker.inprocess.stdout=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stdout
worker.inprocess.stderr=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stderr
$TOMCAT_HOME/conf/auto/mod_jk.conf.hardcopy
<IfModule !mod_jk.c>
LoadModule jk_module /usr/local/apache/libexec/mod_jk-1.3-eapi.so
</IfModule>
JkWorkersFile "/usr/local/tomcat/conf/jk/workers.properties"
JkLogFile "/usr/local/tomcat/logs/mod_jk.log"
JkLogLevel debug
<VirtualHost *:80>
JkMount /admin ajp13
JkMount /admin/* ajp13
JkMount /cocoon ajp13
JkMount /cocoon/* ajp13
JkMount /DerivativesAdminWebsite ajp13
JkMount /DerivativesAdminWebsite/* ajp13
JkMount /manager ajp13
JkMount /manager/* ajp13
</VirtualHost>
relevant httpd.conf entries:
NameVirtualHost *:80
<VirtualHost _default_:80>
ServerName host1-app1.com
DocumentRoot /var/apache/htdocs/app1
</VirtualHost>
<VirtualHost *:80>
ServerName host1-app2.com
DocumentRoot /var/apache/htdocs/app2
</VirtualHost>
<VirtualHost *:80>
ServerName host1-app3.com
DocumentRoot /var/apache/htdocs/app3
</VirtualHost>
<VirtualHost *:80>
ServerName host1-app4.com
DocumentRoot /var/apache/htdocs/app4
</VirtualHost>
Include /usr/local/tomcat/conf/auto/mod_jk.conf.hardcopy
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]