TUTORIAL LIFERAY 4 – CONFIGURARE REVERSE PROXY

Nell’articolo di oggi vedremo come rendere raggiungibile un server liferay disponibile su rete interna.

Per ragioni di sicurezza qualora si decide di rendere una risorsa disponibile su indirizzo pubblico, le porte che vengono aperte sono le porte 80 e 443, rispettivamente responsabili delle risorse in chiaro e delle risorse criptate in ssl. Le porte 80 e 443 sono porte di sistema dedicate al protocollo http e su un server linux sono assegnate al demone httpd.

La configurazione standard di liferay prevede la sua esposizione su porta 8080, porta tipica di un server tomcat. Pertanto non possiamo accedere direttamente a liferay ma dobbiamo mettere in piedi una infrastruttura che ci consenta di farlo.

Per gestire questo scenario possiamo avvalerci dell’http server di apache opportunamente configurato come proxy. Configuriamo Apache in modo tale da veicolare le richieste che arrivano verso liferay.

Sono presenti 2 possibili approcci:

  1. usare mod_jk
  2. configurare un reverse proxy

La configurazione basata su mod_jk è sicuramente la scelta più indicata: la configurazione standard di liferay presenta il modulo ajp in ascolto sulla porta 8009, pertanto dobbiamo solo configurare apache per configurare il modulo mod_jk.so.

Il modulo mod_jk.so non è disponibile nella configurazione standard di Apache, a seconda della versione linux è possibile installarla tramite il gestore dei pacchetti oppure scaricando i sorgenti dal sito e compilandoli. Una volta installato il modulo mod_jk.so occorre configurare il file httpd.conf per abilitare il modulo tramite le direttive

LoadModule jk_module   <path>/mod_jk.so –> indica dove è presente il mod_jk.so
JkWorkersFile percorso <path>/workers.properties –> indica dove si trova il file workers.properties
JkLogFile   <path>/mod_jk.log –> indica il file di log
JkLogLevel    <level> –> indica il livello di log
JkMount  /* worker1 –> indica il livello

Resta da configurare opportunamente il file workers.properties, dove definiamo le regole di integrazione con liferay, tramite le direttive

A questo punto riavviamo apache e proviamo ad accedere all’indirizzo pubblico, se abbiamo operato bene verremo rediretti su liferay.

Qualora non possiate usare mod_jk (non mi viene in mente nessun motivo) usate l’approccio 2. Per configurare il reverse proxy usate le seguenti direttive

ProxyPass /liferay http://x.x.x.x:8080/  –> redirige le chiamate verso il server liferay
ProxyPassReverse /liferay http://x.x.x.x:8080/

Non è sufficiente, poichè con questa configurazione avremmo accesso alla home page di liferay ma non a tutte le risorse, poichè liferay restituisce le url alle risorse della pagina in formato assoluto.

Per ovviare all’inconveniente ci viene in soccorso il modulo mod_proxy_html che consente di implementare delle regole di sostituzione all’interno delle pagine html restituite da liferay tramite la direttiva

Il modulo mod_proxy_html non è presente nella distribuzione standard di Apache, a carico vostro installazione e configurazione reperibile sul sito