Newsgroup: it.comp.java
Titolo: prestazioni httpd e tomcat su macchine diverse

Ciao a tutti, fino ad ora ho utilizzato Apache httpd e Tomcat sulla
stessa macchina. Vorrei capire se a livello di prestazioni e di
sicurezza conviene tenerli insieme o su due macchine separate. In ogni
caso sto provando a configurare httpd in modo da avere i sorgenti jsp
su una cartella locale e, attraverso il worker, interrogare tomcat (su
altra macchina) per la compilazione delle pagine jsp.
httpd è sulla macchina 192.168.2.222
Sul workers2.properties avrei:
[shm]
file=/etc/httpd/log/shm.file
size=1048576
# socket channel
[channel.socket:
192.168.2.233:8009
]
port=8009
host=192.168.2.233
# worker for the connector
[ajp13:
192.168.2.233:8009
]
channel=channel.socket:
192.168.2.233:8009
[uri:jsptest/*.jsp]
worker=ajp13:
192.168.2.233:8009
e come VirtualHost in httpd.conf
<VirtualHost 192.168.2.233>
    ServerAdmin 
ad...@mysite.net
    DocumentRoot /var/www/html/jsptest/
    ServerName jsptest
    DirectoryIndex index.jsp default.htm
<Location "/*.jsp">
         JkUriSet worker ajp13:
192.168.2.233:8009
 </Location>
    ErrorLog logs/jsptest.com-error_log
    CustomLog logs/jsptest.com-access_log common
</VirtualHost>
Adesso devo dire al Tomcat di eseguire ciò che gli passa httpd e
restituirglielo, in modo che a sua volta lo restituisca al browser, ma
non ho trovato esempi.
Sto facendo errori concettuali ?
grazie.
merk

Penso che convenga tenerli separati solo se la macchina su cui girano e'
talmente floscia che non riesce a eseguirli tutti e due in scioltezza. La
comunicazione tra i due, su due macchine distinte, sarebbe un discreto collo
di bottiglia (IMHO).
-- 
---
Francesco Galli / Cinghiale Mannaro
Personal: 
http://cinghialemannaro.splinder.com
TMS project: 
http://tms.inera.it

 di bottiglia (IMHO).
Non direi proprio. A parte che volendo ci sono soluzioni adatte per 
collegare dei cluster, ma volendo anche rimanere su soluzioni alla 
portata delle tasche di noi comuni mortali anche se i due server sono 
collegati direttamente in una rete a 1 Gigabit perchè sia un collo di 
bottiglia ce ne vuole.
Anche perchè di tomcat e host virtuali ne potresti avere due, tre, 
dieci, venti. Mica tutti sulla stessa macchina.

Alt :) no ho parlato ne' di host virtuali ne' di clustering. L'oggetto della
domanda era:
"mi conviene configurare connector di un httpd per puntare a un tomcat di
un'altra macchina per questioni di velocita'?"
Secondo me se la macchina non ce la fa ci guadagna, altrimenti ci rimette.
Tutto qui. Non ho volutamente tirato in ballo altri concetti, sappiamo bene
che ci sono mille modi di far le cose ma imho quello oggetto della domanda
non era un buon modo di fare. Tutto qui :-)


 Secondo me se la macchina non ce la fa ci guadagna, altrimenti ci rimette.
Se la macchina non ce la fa il problema non si pone nemmeno.
Se apache fa da proxy per la web application su tomcat, se sta sulla 
stessa macchina tanto vale eliminare apache. Se apache gestisce anche 
pagine statiche/cgi o piů proxy non vedo perchč metterli su macchine 
separate (ciascuna dimensionata per il proprio lavoro) non ne possa 
trarre giovamento. E' solo una soluzione economicamente piů costosa.

 trarre giovamento. E' solo una soluzione economicamente più costosa.
Eccomi qui, le vostre osservazioni sono interessanti, è meglio
precisare la mia configurazione: ho un httpd attraverso cui pubblico
una serie di siti web in php. Da poco sto iniziando a pubblicare
qualche web application in jsp, quindi comunque utilizzerei Apache come
web server, e il Tomcat per il jsp. Mi chiedevo quale poteva essere
l'utilità di utilizzare una seconda macchina (avendone a disposizione
una) per non caricare troppo il server httpd. Immagino comunque che se
si tratta di due o tre web-app jsp metto tomcat e httpd sullo stesso
server, ma se dovesse crescerne il numero ?
Grazie ancora.
merk

 server, ma se dovesse crescerne il numero ?
Ciascun contesto sul tomcat consuma risorse in base al tipo di 
applicazione, può darsi benissimo che una webapp ti occupi da sola un 
server. Le risorse di java non sono così scalabili, così se dovesse 
crescere il numero dovrà anche crescere il numero di istanze di tomcat 
sul tuo sistema. E a quel punto veramente ti serve distribuirli su più 
macchine.