I played around with it a little more and noticed that if I close the browser and reopen the sites, I get different ones working. It appears that Tomcat is setting a cookie to "stick" me to a particular worker. So it appears that this is not the ideal way to have one server, many sites, each with many host names.
Charles -----Original Message----- From: Charles P. Killmer Sent: Thursday, May 27, 2004 3:14 PM To: Tomcat Users List Subject: RE: Load balancing Well I have it set up like this, but it isnt working quite right. Workers2.properties [shm:] info=Shared memory file. Required for multiprocess servers file=C:\Tomcat\work\jk2.shm size=1000000 [channel.socket:172.16.10.39:8009] info=Ajp13 worker, connects to tomcat instance using AJP 1.3 protocol tomcatId=SITE1 route=SITE1 lbfactor=1 local_worker=1 [channel.socket:172.16.10.38:8009] info=Ajp13 worker, connects to tomcat instance using AJP 1.3 protocol tomcatId=SITE2 route=SITE2 lbfactor=1 local_worker=1 [uri:/*] info=JSP examples, map requests for all JSP pages to Tomcat. context=/ Server.xml <?xml version='1.0' encoding='utf-8'?> <Server> <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/ > <GlobalNamingResources> <Environment name="simpleValue" type="java.lang.Integer" value="30"/> <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/> <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="SITE1"> <Connector port="8009" address="172.16.10.39" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443"> </Connector> <Engine defaultHost="SITE1.com" name="SITE1" jvmRoute="SITE1"> <Host name="SITE1.com" debug="0" appBase="c:\sites\SITE1" unpackWARs="true" autoDeploy="false" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="c:/sites/SITE1" debug="0"/> <Valve className="org.apache.catalina.authenticator.SingleSignOn" debug="0"/> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="client-domain." suffix=".txt" pattern="common" resolveHosts="false"/> <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="client-domain2." suffix=".txt" timestamp="true"/></Host> <Logger className="org.apache.catalina.logger.FileLogger" prefix="SITE1_log." suffix=".txt" timestamp="true"/> <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/> </Engine> </Service> <Service name="SITE2"> <Connector port="8009" address="172.16.10.38" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443"> </Connector> <Engine defaultHost="SITE2.com" name="SITE2" jvmRoute="SITE2"> <Host name="SITE2.com" debug="0" appBase="c:\sites\SITE2" unpackWARs="true" autoDeploy="false" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="c:/sites/SITE2" debug="0"/> <Valve className="org.apache.catalina.authenticator.SingleSignOn" debug="0"/> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="client-domain." suffix=".txt" pattern="common" resolveHosts="false"/> <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="client-domain2." suffix=".txt" timestamp="true"/></Host> <Logger className="org.apache.catalina.logger.FileLogger" prefix="SITE2_log." suffix=".txt" timestamp="true"/> <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/> </Engine> </Service> </Server> I have for host pointing to each IP. This is my hosts file 172.16.10.39 site-1.com Works 172.16.10.39 www.site-1.com Gives me site2's content 172.16.10.39 other.site-1.com Works 172.16.10.39 site1.com Works 172.16.10.39 www.site1.com Works 172.16.10.39 other.site1.com Works 172.16.10.38 site-2.com Works 172.16.10.38 www.site-2.com Gives me site1's content 172.16.10.38 other.site-2.com Works 172.16.10.38 site2.com Works 172.16.10.38 www.site2.com Works 172.16.10.38 other.site2.com Works This is very weird. Any ideas? Charles -----Original Message----- From: Mike Curwen [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 26, 2004 4:49 PM To: 'Tomcat Users List' Subject: RE: Load balancing the docs for jk2 suggest : "tomcatId" is "Automatically set to the localname ( host:port )" and that it "Must match the JVM route on tomcat the server.xml Engine element, for load balancing" So maybe: [channel.socket:172.16.10.39:8009] info=Ajp13 worker, connects to tomcat instance using AJP 1.3 protocol tomcatId=site1 [channel.socket:172.16.10.38:8009] info=Ajp13 worker, connects to tomcat instance using AJP 1.3 protocol tomcatId=site2 and in server.xml: <Engine defaultHost="Site1.com" name="Site1" jvmRoute="site1"> ... etc ... <Engine defaultHost="Site2.com" name="Site2" jvmRoute="site2"> > -----Original Message----- > From: Charles P. Killmer [mailto:[EMAIL PROTECTED] > Sent: Wednesday, May 26, 2004 3:33 PM > To: Tomcat Users List > Subject: Load balancing > > > I have two sites set up and currently they are acting like they are > load balanced. That's the problem. They shouldn't be. This is my > workers2.properties file. Does anyone have an idea of why it would be > alternating between the two sites? > > [shm:] > info=Shared memory file. Required for multiprocess servers > file=C:\Tomcat\work\jk2.shm size=1000000 > > [channel.socket:172.16.10.39:8009] > info=Ajp13 worker, connects to tomcat instance using AJP 1.3 protocol > tomcatId=172.16.10.39:8009 > > [channel.socket:172.16.10.38:8009] > info=Ajp13 worker, connects to tomcat instance using AJP 1.3 protocol > tomcatId=172.16.10.38:8009 > > [uri:/*] > info=JSP examples, map requests for all JSP pages to Tomcat. context=/ > > > This is my server.xml > > <?xml version='1.0' encoding='utf-8'?> <Server> > <Listener > className="org.apache.catalina.mbeans.ServerLifecycleListener"/> > <Listener > className="org.apache.catalina.mbeans.GlobalResourcesLifecycle > Listener"/ > > > <GlobalNamingResources> > <Environment name="simpleValue" type="java.lang.Integer" > value="30"/> > <Resource auth="Container" description="User database that can be > updated and saved" name="UserDatabase" > type="org.apache.catalina.UserDatabase"/> > <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="Site1"> > <Connector acceptCount="100" connectionTimeout="20000" > disableUploadTimeout="true" port="8080" > address="172.16.10.39" redirectPort="8443"> > </Connector> > <Connector port="8009" address="172.16.10.39" > protocol="AJP/1.3" > protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" > redirectPort="8443"> > </Connector> > <Engine defaultHost="Site1.com" name="Site1"> > <Host name="Site1.com" debug="0" > appBase="c:\sites\Site1" unpackWARs="true" autoDeploy="false" > xmlValidation="false" xmlNamespaceAware="false"> > <Context path="" docBase="c:/sites/Site1" debug="0"/> > <Valve > className="org.apache.catalina.authenticator.SingleSignOn" debug="0"/> > <Valve className="org.apache.catalina.valves.AccessLogValve" > directory="logs" prefix="client-domain." suffix=".txt" > pattern="common" resolveHosts="false"/> > <Logger className="org.apache.catalina.logger.FileLogger" > directory="logs" prefix="client-domain2." suffix=".txt" > timestamp="true"/></Host> > > <Logger className="org.apache.catalina.logger.FileLogger" > prefix="Site1_log." suffix=".txt" timestamp="true"/> > <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/> > </Engine> > </Service> > > <Service name="Site1"> > <Connector acceptCount="100" connectionTimeout="20000" > disableUploadTimeout="true" port="8080" > address="172.16.10.38" redirectPort="8443"> > </Connector> > <Connector port="8009" address="172.16.10.38" > protocol="AJP/1.3" > protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" > redirectPort="8443"> > </Connector> > <Engine defaultHost="Site2.com" name="Site2"> > <Host name="Site2.com" debug="0" > appBase="c:\sites\Site2" unpackWARs="true" autoDeploy="false" > xmlValidation="false" xmlNamespaceAware="false"> > <Context path="" docBase="c:/sites/Site2" debug="0"/> > <Valve > className="org.apache.catalina.authenticator.SingleSignOn" debug="0"/> > <Valve className="org.apache.catalina.valves.AccessLogValve" > directory="logs" prefix="client-domain." suffix=".txt" > pattern="common" resolveHosts="false"/> > <Logger className="org.apache.catalina.logger.FileLogger" > directory="logs" prefix="client-domain2." suffix=".txt" > timestamp="true"/></Host> > > <Logger className="org.apache.catalina.logger.FileLogger" > prefix="Site2_log." suffix=".txt" timestamp="true"/> > <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/> > </Engine> > > </Service> > </Server> > > > I have a file called test.jsp in the root of each site. If I run with > this setup, I get site1's test.jsp then if I hit refresh I get site2's > test.jsp. > > This is IIS using the Isapi_redirector.dll to proxy requests to the > tomcat engine. > > Thanks for any help > Charles Killmer > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]