Jun 222014
 
Artículo Java

En este artículo se explica cómo instalar el servidor de búsquedas solr en un contenedor Tomcat.

En nuestro anterior artículo de introducción a solr, hemos visto cómo instalar este servidor de búsquedas en el contenedor Jetty incluido en el paquete de instalación.

Pero en muchas ocasiones, el objetivo de instalar solr es añadir, a un servicio previamente existente, la funcionalidad que ofrece solr como servidor de búsquedas. Si dicho servicio se ejecuta bajo un contenedor Tomcat, es preferible ejecutar solr bajo el mismo contenedor, para evitar el consumo adicional de recursos que supondría ejecutar un contenedor Jetty junto al contenedor Tomcat.

En nuestro artículo sobre Cómo instalar un contenedor Tomcat 7 en Linux Debian podemos revisar los pasos a seguir para la instalación del contenedor Tomcat.

Consideraciones de seguridad

En una instalación por defecto, el interfaz de administración de Tomcat está accesible en la url http://servidor:8080. Pero es conveniente evitar el libre acceso desde internet a este interfaz.

Normalmente, en un servidor de producción existe una instalación de servidor web apache, que se encarga de servir el contenido estático (imágenes, hojas de estilo CSS, ficheros javascript,…). Cuando el servidor web recibe peticiones de contenido dinámico, funciona como un “proxy inverso”, enviando a Tomcat la petición y entregando al cliente la respuesta obtenida.

En una instalación de este tipo, la mejor manera de aumentar la protección de Tomcat es permitir únicamente conexiones locales, recibidas desde la dirección IP 127.0.0.1 (localhost). En el servidor apache, podemos implementar el mecanismo de protección que consideremos adecuado para las paginas de adminsistración de Tomcat: Protección  por usuario y contraseña, permitir el acceso únicamente a determinadas direcciones IP, protocolo https, etc.

Para limitar a localhost los posibles accesos a Tomcat, editamos el fichero de configuración “/usr/share/tomcat7/conf/server.xml”. En él, localizamos la definición del conector HTTP al puerto 8080, y añadimos el atributo “address”:

En el servidor web apache, configuramos un proxy inverso como ya explicamos en el artículo de introducción a solr:

Y para acceder al interfaz de administración de tomcat:

Además, deberemos definir el “role” “manager-gui”, y crear un usuario y contraseña a los que asignaremos dicho “role”. Esto lo hacemos editando el fichero “/usr/share/tomcat7/conf/tomcat-users.xml”, y añadiendo:

Opcionalmente, configuramos en el servidor web el tipo de medidas de seguridad que consideremos necesarias, como se explica en el artículo de introducción a solr.

Y con esto, ya podemos acceder al interfaz de administración de Tomcat, con la url http://servidor/tomcat/

Añadir solr a Tomcat

Para añadir solr a Tomcat, en el directorio “<tomcat_home>/conf/Catalina/localhost” creamos un fichero “solr.xml”, con el siguiente contenido (sustituyendo “/path/to/solr” por el directorio en donde se encuentra instalado solr):

Por otra parte, debemos editar el fichero /path/to/solr/example/solr/solr.xml:

  • En dicho fichero, buscamos la especificación de hostPort, y cambiamos su valor por 8080, para que coincida con el puerto en el que escucha Tomcat.
  • También, buscamos la especificación de hostContext, y cambiamos su valor por “solr”

También debemos copiar al subdirectorio “lib” de la instalación de Tomcat las librerías de logging utilizadas por solr:

Con esto, podemos acceder al interfaz de administración de Tomcat, y activar la aplicación solr.

Solución de problemas

Si por alguna razón la aplicación solr no se activa correctamente, podemos examinar los mensajes que aparecen en el fichero de log de tomcat “/usr/share/tomcat7/logs/localhost.yyyy_mm_dd.log.

Por ejemplo, si no se encuentran las librerías de logging requeridas por solr, aparecerá un mensaje de la forma:

Referencias

Indice de artículos relacionados con solr

 Publicado por en 2:33 pm

 Deja un comentario

(requerido)

(requerido)