I really like the idea of setting up multiple instances of Tomcat per virtual site - i have 2 questions:
1) How does it affect memory usage, i.e. if we are on a server with X ammount of ram and there are 20 sites, does each site end up needing a minimum of ~21 MB RAM for tomcat so we have a basic need of 420MB ram being used just to keep tomcat up / site? 2) If one site gets busier then will it slow down the other sites more so than using mod_jk / mod_webapp? sai On Sat, 06 Sep 2003 21:05:38 -0400, Bob Langford wrote > Your plan should work pretty well. I do something similar myself. > The major difference is that I use one installation of Tomcat for > all the sites. I have a script to start tomcat for each site, that > points CATALINA_HOME to the shared Tomcat binaries, and > CATALINA_BASE to the conf/, logs/, temp/, work/, and webapps/ > directories for the site: > > file /home/site1/tomcat/catalina: > #!/bin/sh > CATALINA_BASE = "/home/site1/tomcat" > CATALINA_HOME = "/usr/share/tomcat4" (or whatever) > CATALINA_OPTS = "-server" (maybe others) > export CATALINA_BASE CATALINA_HOME CATALINA_OPTS > $CATALINA_BASE/bin/catalina.sh $* > > I can do ./catalina start, ./catalina stop, etc to control each > site. It works pretty well, especially if you're developing one > site while others are in production. > > Two things to watch for: > 1) You are correct that you have to use different ports for each > server.xml file. > I declared that site one could have ports between 8100-8199, site 2 > between 8200-8299, etc. Each project can use whatever they want in > their range. > > 2) Since these Tomcat instances listen on ports above 1024, they > don't need to be started by the "root" user. If they did, I'd be > very wary of putting the server.xml file (and other config files and > scripts) where the user could modify them. Also, your system boot > procedures need to take some steps to start them using the correct username. > > 3) I use Apache as a front end for all these Tomcat instances, > using a proxy instead of JK or JK2. In each virtual host, there's > something like this: ProxyPass /examples/ http://localhost:8181/examples/ > ProxyPassReverse /examples/ http://localhost:8181/examples/ > There are two nice things about this: Apache logs everything, > making it easier to do usage reports. And, all the connections to > Tomcat come from Apache and localhost, so I can block outside > connections to all ports except the ones Apache listens to. However, > it's still possible for user A to change his server.xml file to > listen to a port that's being sent traffic for user B. For my > purposes, that's not an issue; for others, it may be. > > Good luck! > ...Bob Langford... > > At 02:12 PM 9/6/2003, you wrote: > >Hi, > > > >I have Apache 1.3 and Tomcat 4.1.8 on a Red Hat 9 machine. > > > >Apache serves several virutal hosts. We have one Tomcat instance running > >with several web contexts, one context for each virtual host. > > > >Now I would like to change this to have one Tomcat instance for each > >virtual host (this is necessary because Tomcat sometimes crashes, and I > >don't want all virtual hosts to be down then). > > > >I read a book about Tomcat and searched the Web, but could not find out > >how to do this. What I assume is: > > > > > >In Apache's httpd.conf I have something (after the import of mod_jk): > > > >NameVirtualHost 200.200.200.200 (or whatever) > > > ><VirtualHost 200.200.200.200> > >ServerName www.xxx.com > >DocumentRoot /tomcat1/webapps/xxx > >JkMount /servlet/* worker1 > >JkMount /*.jsp worker1 > >JkMount /*.do worker1 > ></VirtualHost> > > > ><VirtualHost 200.200.200.200> > >ServerName www.yyy.com > >DocumentRoot /tomcat2/webapps/yyy > >JkMount /servlet/* worker2 > >JkMount /*.jsp worker2 > >JkMount /*.do worker2 > ></VirtualHost> > > > > > >Then I will install Tomcat two times, in /tomcat1 and /tomcat2. > > > >The server.xml of each Tomcat contains different ports (for shutdown and > >for the connector for ajp13). > > > > > >The workers.properties should look like: > > > >worker.list=worker1,worker2 > >... > >worker.worker1.port=8009 > >worker.worker1.host=localhost > >worker.worker1.type=ajp13 > >... > >worker.worker1.port=8010 > >worker.worker1.host=localhost > >worker.worker1.type=ajp13 > > > > > >Is this all correct? Should that work? > > > >Thomas > > > > > > > >--------------------------------------------------------------------- > >To unsubscribe, e-mail: [EMAIL PROTECTED] > >For additional commands, e-mail: [EMAIL PROTECTED] > > -- > Bob Langford > Silicon Masters Consulting, Inc. 8207 Stone River Court, Richmond, > VA 23235 phone: 804-674-1253 fax: 804-745-6650 > http://www.silicon-masters.com/ > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] -- Open WebMail Project (http://openwebmail.org) --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]