Passa ai contenuti principali

Configurazione multi-sito con IIS e Tomcat

Hai 2 siti che vuoi far girare con Tomcat e IIS?
Nessun problema, è facile.
Ecco come...

Presupponiamo di avere l'Apache Tomcat Connector (http://tomcat.apache.org/connectors-doc/), IIS 6, Apache Tomcat 6 e che tutti funzioni già.

Per chiarezza, riassumiamo il giro della chiamata che parte dall'utente e arriva alla jsp:
  1. Utente
  2. IIS
  3. Tomcat Connector
  4. uriworkermap.properties
  5. workers.properties
  6. Tomcat
  7. pagina.jsp

Immaginiamo di avere il www.sito.it e en.sito.it
Prima di iniziare...

IIS e Tomcat devono funzionare da soli

Provate entrambi i siti sulla porta 80 e 8080 (o quella usata da Tomcat)

http://www.sito.it, http://www.sito.it:8080, http://en.sito.it e http://en.sito.it:8080

Questo vuol dire che nel vostro server.xml c'è qualcosa come:

<Host name="en.sito.it" appBase="webapps.en"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</host>

a questo punto...

facciamo parlare i due mondi con due siti



il file uriworker.properties deve contenere

# uriworkermap.properties - IIS
# The general syntax for this file is:
# [URL]=[Worker name]
#
## il sito in italiano
/sito.it/*.jsp=workerIT
/www.sito.it/*.jsp=workerIT
#
## english
/en.sito.it/*.jsp=workerEN
# non facciamo entrare la gente nel WEB-INF
/WEB-INF/*=workerIT


il file workers.properties deve contenere

# l'elenco dei worker
worker.list=workerIT,workerEN

# il worker dell'italiano, workerIT (ajp13)
worker.workerIT.type=ajp13
worker.workerIT.host=localhost
worker.workerIT.port=8009

# il worker dell'inglese, workerEN (ajp13)
worker.workerEN.type=ajp13
worker.workerEN.host=en.sito.it
worker.workerEN.port=8009

Il segreto di tutto sta nel mapping dell'uriworkermap, che dice di usare un worker particolare se si sta usando un determinato sito.

Riavviamo Tomcat e IIS... e tutto dovrebbe funzionare.
Nel dubbio guardate i log del connector.

ciao
/m

Commenti

Post popolari in questo blog

jQuery validation message in italiano

Ecco i messaggi in italiano per il plugin Validation di jQuery . http://docs.jquery.com/Plugins/Validation ciao /m /* * Translated default messages for the jQuery validation plugin. * Language: IT */ jQuery.extend(jQuery.validator.messages, { required: "Questo campo è obbligatorio.", remote: "Riempire questo campo per continuare.", email: "Inserire un indirizzo email valido.", url: "Inserire un indirizzo URL valido.", date: "Inserire una data in formato mm-gg-aaaa.", dateDE: "Inserire una data in formato gg-mm-aaaa.", dateISO: "Inserire una data in formato aaaa-mm-gg.", number: "Inserire un numero.", digits: "Inserire (solo) un numero.", creditcard: "Inserire un numero di carta di credito valido.", equalTo: "Inserire lo stesso valore usato sopra.", accept: "Usare un'estensione valida....

jsp+form: problemi con caratteri accentati

Con il submit di un form (GET o POST) si possono ricevere schifezze al posto dei caratteri accentati. Ipotizzando di usare UTF8, non basta che: il file sia salvato come UTF-8 la pagina dica di essere UTF-8 <meta equiv="Content-Type" content="text/html; charset=utf-8"> Occorre specificare anche l'encoding della request: Sarebbe anche da impostare l'encoding del Connector per prendere valori accentati dalla request. può essere utile: http://wiki.apache.org/tomcat/FAQ/CharacterEncoding enjoy /m

Montare il CD di Windows su un'istanza EC2 Amazon

Per montare il CD di Windows in un'istanza EC2 (per installare IIS)... 0. Occorre avere EC2 API tools 1. Creare un volume da una snapshot esistente Per Windows Datacenter 32bit (verifica la zona): ec2-create-volume --snapshot snap-b8bb5ed1 --availability-zone eu-west-1b Per altre versioni di Windows: http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1802 2. Montare il volume su un'istanza ec2-attach-volume volume_id --instance instance_id --device xvdg 3. Aspettare 2 minuti... Adesso nell'istanza selezionata compare una nuova unità con i file necessari per l'installazione. ciao /m