Configurar múltiples dominios en una misma instancia de Liferay

Algo muy habitual cuando trabajamos con Liferay es que las empresas quieran tener varios portales diferentes para darles diferente uso. Un claro ejemplo sería la empresa que quiere tener un portal público para mostrar a sus clientes y otro portal para la intranet privada de sus trabajadores. También puede darse el caso de que una misma empresa se dedique a varios sectores comerciales distintos y quiera tener un portal para cada uno de ellos. Todo ello, por supuesto, dentro de la misma instalación de Liferay y del mismo servidor Tomcat.

Para estos casos Liferay nos da dos opciones. Por una parte podríamos crear una instancia de portal única para cada portal web o podríamos crear varios portales web dentro de una misma instancia de portal. La principal diferencia es que si los portales comparten una misma instancia podremos compartir usuarios, grupos, roles, la librería multimedia de cada portal… Mientras que si optamos por tener una instancia diferente para cada portal sería como si cada portal se encontrase en un servidor distinto y totalmente aislado del resto de portales o comunidades.

En el caso de tener una instancia por cada portal no tendríamos problemas ya que cada instancia tendría asignado su propio dominio con el que se accedería al portal web en cuestión. El problema lo tenemos cuando varios portales comparten la misma instancia de portal ya que todos compartirán el mismo dominio y esto no es lo que normalmente queremos.

Supongamos que tenemos dos portales distintos, uno llamado Mi Sitio 1 y otro llamado Mi Sitio 2. Si primero creamos el portal Mi sitio 1 y la instancia de portal en la que se encuentra está configurada con el dominio misitio1.com entonces al crear el segundo portal en la misma instancia tendremos que la URL de acceso a ambos portales sería misitio1.com/web/sitio1 y misitio1.com/web/sitio2 respectivamente, dando a entender que los dos portales son el mismo cuando en realidad no lo son.

En este caso lo que tendríamos que hacer básicamente es configurar la instancia de Liferay para que su servidor virtual sea una dirección IP, configurar nuestro DNS (en mi caso el fichero de hosts) para que los dominios misitio1.com y misitio2.com apunten a la IP de nuestra instancia y por último configurar cada portal web para que su URL sea el dominio que le representa.

Para configurar nuestra instancia de portal tenemos que ir a la sección Configuración del Panel de control. Esto nos llevará a la ventana de configuración principal donde tendremos que introducir la IP donde apuntarán nuestro dos dominios en el apartado Servidor Virtual. Si nuestra IP es la 127.0.0.1 entonces ahora la URL de acceso a nuestro portales será http://127.0.0.1/web/sitio1 y http://127.0.0.1/web/sitio2.

Configuracion instancia Liferay

El siguiente paso es configurar cada portal con un dominio diferente de forma que misitio1.com esté mapeado a 127.0.0.1/web/sitio1 y misitio2.com a 127.0.0.1/web/sitio2. Para ello tendremos que acceder a la sección Sitios web del Panel de control y una vez dentro veremos una lista con todos nuestros sitios web. Lo único que tendremos que hacer es acceder a cada uno de ellos y en la sección de configuración de la parte izquierda ir a Ajustes del sitio. Una vez dentro de los ajustes del sitio tendremos que ir a la opción URL del sitio que se encuentra en el menú de la derecha y en la sección Servidor virtual introducir el dominio que va a utilizar este portal web en el apartado de Páginas públicas. El campo de Páginas privadas lo dejaremos en blanco a menos que queremos utilizar un dominio diferente para las páginas privadas del portal.

Ajustes del sitio Liferay

Repetimos éstos pasos para cada uno de nuestros portales web y ya tendremos mapeado cada portal con su propio dominio.

Para Liferay ambos portales se encuentran en el mismo servidor, en la misma instancia de portal y utilizan la misma IP (podremos seguir accediendo desde 127.0.0.1/web/sitio1 y 127.0.0.1/web/sitio2) pero para nuestros usuarios los portales serán totalmente diferentes al tener cada uno su propio dominio independiente.

Importante

Para que la configuración funcione correctamente es necesario que en nuestro fichero portal-ext.properties tengamos en blanco (o eliminemos) la siguiente propiedad ya que de lo contrario las URLs de los menús, portlets… no se generaran con el dominio correcto.

#
# Set the hostname that will be used when the portlet generates
# URLs.
# Leaving this blank will mean the host is derived from the
# servlet container.
#
web.server.host=

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *