PDA

View Full Version : tomcat cluster(concetti)


texerasmo
16-01-2006, 11:59
Ciao a tutti mi manca qualcosa ma non so cosa :)

Vorrei gestire un cluster e fare un test.

Ho messo tomcat5 in cluster attraverso il suo server.xml
Ora vorrei capire:
TomcatA gira sulla 8080
TomcatB gira sulla 9090

Ora devo richiamare un alias quale?

Ho pensato a configurare tomcat+Apache con jk ma ho dei dubbi.

Se configuro Apache con il mod jk
questo include lo devo fare per tomcatA oppure TomcatB

Include /usr/local/tomcat/conf/auto/mod_jk.conf
E il file workers.propertiesdevo farlo per tutte e due?

workers.properties
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13

posso fare a questo punto http://localhost/

e buttare giuù uno dei miei tomcat e vedere se i valori in sessioni rimangono?

Grazie.

kingv
16-01-2006, 12:20
creati due worker (uno per ogni istanza del cluster) e poi definiscine un terzo di tipo "lb":

worker.bilanciatore.type=lb
worker.bilanciatore.balance_workers=worker1,worker2

e fai puntare jk a quello.

texerasmo
16-01-2006, 16:30
il terzo è un altro installazione di tomcat?

kingv
16-01-2006, 17:09
il terzo è un altro installazione di tomcat?


no è un worker "virtuale" che fa balancing sugli altri due.

texerasmo
16-01-2006, 17:18
lo metto in una folder apposita esetrna a tomcat 1 e tomcat 2

kingv
16-01-2006, 17:29
lo metto in una folder apposita esetrna a tomcat 1 e tomcat 2


non capisco cosa intendi, nel workers.properties crea un worker per il primo server, uno per il secondo e poi quello chiamato "bilanciatore" che punta ai due precedenti.

alla fine utilizza il worker "bilanciatore" all'interno di mod_jk.conf

texerasmo
17-01-2006, 12:20
Propabilmente mi manca qualche info.

Allora io il file worker lo creo in questo modo.

Ora creiamo in CATALINA_HOME/conf/jk un file di nome workers.properties
cd $CATALINA_HOME/conf
mkdir jk
chown tomcat:tomcat jk
cd jk
vi workers.properties
Il file sarà composto da queste linee:
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
Gli diamo i permessi corretti:
chown tomcat:tomcat workers.properties
A questo punto facciamo partire Apache ed il gioco è fatto.
Testiamo con: http://localhost/examples e se vengono processati i files java il lavoro è terminato.

http://openskills.info/infobox.php?ID=1050


Questa operazione la faccio per due volte?
Ovvero per TomcatA e TomcatB.


Questo dovrebbe essere il bilanciatore?
configurazione di Apache (httpd.conf) al termine del file di configurazione):
Include /usr/local/tomcat/conf/auto/mod_jk.conf


Non ho capito dove lo scrivo?

worker.bilanciatore.type=lb
worker.bilanciatore.balance_workers=worker1(file di tomcat A ),worker2(file di tomca B workers.properties)

kingv
17-01-2006, 12:53
tutto giusto, ma in una configurazione con due istanze di tomcat in quel workers.properties devi definire 3 worker differenti, il primo (ovvero quello che hai già creato), il secondo (per l'altra istanza) e il terzo (che bilancia sui due precedenti). I primi due saranno di tipo "ajp13" (il protocollo usato da tomcat), l'ultimo di tipo "lb" (che sta per load balancer).
nello stesso file setti la proprietà "worker.list" con il nome del worker di tipo "lb " (e NON gli altri due) e hai finito, al successivo riavvio apache inizierà a bilanciare le richieste sulle due istanze.

kingv
17-01-2006, 12:54
N.B. io sto parlando di una configurazione dove hai due tomcat ma un solo apache che smista le richieste tra i due tomcat. E' questo che vuoi realizzare, vero?

texerasmo
17-01-2006, 13:49
si

texerasmo
17-01-2006, 14:04
Apache lo configuro così

Include /usr/local/tomcat_interno/conf/auto/mod_jk.conf
<IfModule mod_jk.c>
<VirtualHost 127.0.0.1>
DocumentRoot /usr/local/tomcat_interno/webapps/test
ErrorLog /var/log/ec4_gimacom.log
TransferLog "|/usr/local/apache2/bin/rotatelogs /var/log/test-access_log 86400"
ServerName www.test.com

ServerAdmin sneto@sneto.com
DirectoryIndex index.html
JkMount /test/* ajp13
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
JkMount /*.gif ajp13
JkMount /*.GIF ajp13
JkMount /*.JPEG ajp13
JkMount /*.jpeg ajp13
JkMount /*.jpg ajp13
JkMount /*.JPG ajp13
JkMount /*.swf ajp13
JkMount /*.SWF ajp13
JkMount /*.mov ajp13
JkMount /*.MOV ajp13
JkMount /*.dwt ajp13
JkMount /*.DWT ajp13
JkMount /*.css ajp13
JkMount /*.CSS ajp13
JkMount /*.htm ajp13
JkMount /*.HTM ajp13
JkMount /*.HTML ajp13
JkMount /*.html ajp13
JkMount /*.bmp ajp13
JkMount /*.BMP ajp13
JkMount /*.mvr ajp13
JkMount /*.php ajp13
JkMount /*.xml ajp13
JkMount /*.shtm ajp13
JkMount /*.shtml ajp13
JkMount /*.tif ajp13
JkMount /*.TIF ajp13
JkMount /*.tiff ajp13
JkMount /*.TIFF ajp13
JkMount /*.PNG ajp13
JkMount /*.png ajp13
JkMount /*.xls ajp13
JkMount /*.XLS ajp13
JkMount /*.txt ajp13
JkMount /*.doc ajp13
JkMount /*.DOC ajp13
JkMount /*.ect ajp13
JkMount /*.ECT ajp13
JkMount /*.zip ajp13
JkMount /*.ZIP ajp13
JkMount /*.js ajp13
JkMount /*.js ajp13
JkMount /*.doc ajp13
JkMount /*.DOC ajp13
JkMount /*.xsl ajp13
JkMount /*.XSL ajp13
</VirtualHost>
</IfModule>

kingv
17-01-2006, 14:30
è giusto, sostituisci al worker che utilizzi nella tua configurazione quello che hai definito come "lb" dentro workers.properties e per la config di apache sei a posto.

texerasmo
17-01-2006, 15:07
Quindi devo fare un solo file worker.properties oppure sono tre?

Se sono tre devo fare così

Tomcat1
cd $CATALINA_HOME1/conf
mkdir jk
chown tomcat:tomcat jk
cd jk
vi workers.properties
Il file sarà composto da queste linee:
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13

-------------------
Tomcat2
cd $CATALINA_HOME2/conf
mkdir jk
chown tomcat:tomcat jk
cd jk
vi workers.properties
Il file sarà composto da queste linee:
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13


------
terzo?
dove lo posiziono?

worker.bilanciatore.type=lb
worker.bilanciatore.balance_workers=tomcat1/workers.properties,tomcat2/workers.properties


<<
tutto giusto, ma in una configurazione con due istanze di tomcat in quel workers.properties devi definire 3 worker differenti, il primo (ovvero quello che hai già creato), il secondo (per l'altra istanza) e il terzo (che bilancia sui due precedenti). I primi due saranno di tipo "ajp13" (il protocollo usato da tomcat), l'ultimo di tipo "lb" (che sta per load balancer).
nello stesso file setti la proprietà "worker.list" con il nome del worker di tipo "lb " (e NON gli altri due) e hai finito, al successivo riavvio apache inizierà a bilanciare le richieste sulle due istanze.
>>

oppure ne devo fare uno solo?
e come

texerasmo
18-01-2006, 09:41
up!!

texerasmo
20-01-2006, 10:38
Grazie funziona.

Utilizzavo il mod_jk in un modo diverso da quello che mi dice tu.
per questo non capito come fare.


io facevo un cosa del genere
" nel server.xml
Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" append="true" forwardAll="false" modJk="/usr/local/apache/modules/mod_jk.so" /

"