{"id":230,"date":"2014-06-19T23:54:47","date_gmt":"2014-06-19T21:54:47","guid":{"rendered":"http:\/\/www.valeriofinazzo.it\/wordpress\/?p=230"},"modified":"2014-06-19T23:54:47","modified_gmt":"2014-06-19T21:54:47","slug":"tutorial-liferay-4-configurare-reverse-proxy","status":"publish","type":"post","link":"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/06\/tutorial-liferay-4-configurare-reverse-proxy\/","title":{"rendered":"TUTORIAL LIFERAY 4 &#8211; CONFIGURARE REVERSE PROXY"},"content":{"rendered":"<p style=\"color: rgb(13, 41, 63); text-align: justify;\">Nell&#8217;articolo di oggi vedremo come rendere raggiungibile un server liferay disponibile su rete interna.<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">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.<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">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.<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">Per gestire questo scenario possiamo avvalerci dell&#8217;http server di apache opportunamente configurato come proxy. Configuriamo Apache in modo tale da veicolare le richieste che arrivano verso liferay.<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">Sono presenti 2 possibili approcci:<\/p>\n<ol style=\"color: rgb(20, 60, 93); text-align: justify;\">\n<li>usare mod_jk<\/li>\n<li>configurare un reverse proxy<\/li>\n<\/ol>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">La configurazione basata su mod_jk \u00e8 sicuramente la scelta pi\u00f9 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.<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">Il modulo mod_jk.so non \u00e8 disponibile nella configurazione standard di Apache, a seconda della versione linux \u00e8 possibile installarla tramite il gestore dei pacchetti oppure scaricando i sorgenti dal\u00a0<a style=\"color: #2675b5;\" href=\"http:\/\/tomcat.apache.org\/connectors-doc\/\">sito<\/a>\u00a0e compilandoli. Una volta installato il modulo mod_jk.so occorre configurare il file httpd.conf per abilitare il modulo tramite le direttive<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">LoadModule jk_module \u00a0 &lt;path&gt;\/mod_jk.so &#8211;&gt; indica dove \u00e8 presente il mod_jk.so<br \/>\nJkWorkersFile percorso &lt;path&gt;\/workers.properties &#8211;&gt; indica dove si trova il file workers.properties<br \/>\nJkLogFile \u00a0 &lt;path&gt;\/mod_jk.log &#8211;&gt; indica il file di log<br \/>\nJkLogLevel \u00a0 \u00a0&lt;level&gt; &#8211;&gt; indica il livello di log<br \/>\nJkMount \u00a0\/* worker1 &#8211;&gt; indica il livello<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">Resta da configurare opportunamente il file workers.properties, dove definiamo le regole di integrazione con liferay, tramite le direttive<\/p>\n<pre class=\"lang:default decode:true \">worker.list=worker1\r\nworker.worker1.port=8009\r\nworker.worker1.host=&lt;ip di liferay&gt;\r\nworker.worker1.type=ajp13<\/pre>\n<p>A questo punto riavviamo apache e proviamo ad accedere all&#8217;indirizzo pubblico, se abbiamo operato bene verremo rediretti su liferay.<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">Qualora non possiate usare mod_jk (non mi viene in mente nessun motivo) usate l&#8217;approccio 2. Per configurare il reverse proxy usate le seguenti direttive<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">ProxyPass \/liferay http:\/\/x.x.x.x:8080\/ \u00a0&#8211;&gt; redirige le chiamate verso il server liferay<br \/>\nProxyPassReverse \/liferay http:\/\/x.x.x.x:8080\/<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">Non \u00e8 sufficiente, poich\u00e8 con questa configurazione avremmo accesso alla home page di liferay ma non a tutte le risorse, poich\u00e8 liferay restituisce le url alle risorse della pagina in formato assoluto.<\/p>\n<p style=\"color: rgb(13, 41, 63); text-align: justify;\">Per ovviare all&#8217;inconveniente ci viene in soccorso il modulo\u00a0mod_proxy_html che consente di implementare delle regole di sostituzione all&#8217;interno delle pagine html restituite da liferay tramite la direttiva<\/p>\n<pre class=\"lang:default decode:true \">LoadModule proxy_html_module modules\/mod_proxy_html.so\r\nLoadModule xml2enc_module modules\/mod_xml2enc.so\r\nProxyHTMLURLMap http:\/\/x.x.x.x:8080\/ \/app&lt;Location \/app1\/&gt;\r\nProxyPassReverse \/\r\nProxyHTMLEnable On\r\nProxyHTMLURLMap \u00a0\/ \u00a0 \u00a0 \u00a0\/app1\/\r\nRequestHeader \u00a0 \u00a0unset \u00a0Accept-Encoding\r\n&lt;\/Location&gt;\r\n\r\n<\/pre>\n<p><span style=\"line-height: 1.714285714; font-size: 1rem;\">Il modulo mod_proxy_html non \u00e8 presente nella distribuzione standard di Apache, a carico vostro installazione e configurazione reperibile sul\u00a0<\/span><a style=\"color: #2675b5;\" href=\"http:\/\/apache.webthing.com\/mod_proxy_html\/\">sito<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nell&#8217;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 &hellip; <a href=\"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/06\/tutorial-liferay-4-configurare-reverse-proxy\/\" class=\"more-link\">Continua la lettura di <span class=\"screen-reader-text\">TUTORIAL LIFERAY 4 &#8211; CONFIGURARE REVERSE PROXY<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[42],"tags":[43],"_links":{"self":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/230"}],"collection":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/comments?post=230"}],"version-history":[{"count":1,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/230\/revisions"}],"predecessor-version":[{"id":231,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/230\/revisions\/231"}],"wp:attachment":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/media?parent=230"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/categories?post=230"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/tags?post=230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}