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

Resettare la password di MySQL su Windows, senza averla

Può succedere di perdere la password di MySQL su Windows :-0 Non è un problema, con questa procedura se ne può forzare un'altra. 1. Stoppare l'eventuale servizio di MySQL 2. Far partire MySQL senza grant tables Andare nella directory bin di MySQL e da DOS farlo partire in questo modo: mysqld --skip-grant-tables Questa finestra rimarrà aperta e come bloccata. 3. Entrare in MySQL mysql --user=root mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.0.45-community-nt MySQL Community Edition (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. 4. Impostare la nuova password (nell'esempio: "mazzullami") mysql> update user set Password=PASSWORD(' mazzullami ') WHERE User='root'; Query OK, 2 rows affected (0.05 sec) Rows matched: 2 Changed: 2 Warnings: 0 5. Aggiornare le tabelle mysql> flush privileges; Query OK, 0 rows affected (0.02 sec) 6. Uscire ...