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]

Reply via email to