Solr整合Tomcat
一、Solr与Tomcat整合:
虽然Solr内部提供有小型的WEB容器,但是在实际的开发之中,如果要想使用Solr往往是结合Tomcat完成使用的,那么也就意味着需要在Tomcat之中配置一个专属的Solr项目(虚拟目录)。
1. 如果要想在Tomcat中进行Solr服务的配置,那么一定需要创建有一个基本的工作目录,该目录之中需要保存有solr的一些核心内容:
mkdir -p /solr/{webapp,home,logs}
webapp:保存所有的Web相关的配置,Tomcat的启动需要Web结构支持、home:保存Solr的主配置文件、log:保存所有的日志文件。
2. 为“webapp”拷贝内容:
cp -r /usr/local/solr/server/solr-webapp/webapp/* /solr/webapp/
3. 拷贝核心的依赖组件:
cp -r /usr/local/solr/server/lib/ext/* /solr/webapp/WEB-INF/lib/ //拷贝ext扩展开发包 cp -r /usr/local/solr/server/lib/metrics-*.* /solr/webapp/WEB-INF/lib/ //拷贝检索依赖库 cp -r /usr/local/solr/dist/solr-dataimporthandler-* /solr/webapp/WEB-INF/lib/ //拷贝数据导入依赖库 cp /usr/local/solr/server/lib/http2-* /solr/webapp/WEB-INF/lib/ //拷贝Http2依赖库
4. 为Home目录拷贝核心索引配置内容:
cp -r /usr/local/solr/server/solr/* /solr/home/
5. 在webapp中配置home目录:vim /solr/webapp/WEB-INF/web.xml
》在头部位置追加:
<env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>/solr/home</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
》取消所有的安全配置项(先注释掉):
<!-- <security-constraint> <web-resource-collection> <web-resource-name>Disable TRACE</web-resource-name> <url-pattern>/</url-pattern> <http-method>TRACE</http-method> </web-resource-collection> <auth-constraint/> </security-constraint> <security-constraint> <web-resource-collection> <web-resource-name>Enable everything but TRACE</web-resource-name> <url-pattern>/</url-pattern> <http-method-omission>TRACE</http-method-omission> </web-resource-collection> </security-constraint> -->
6. Solr使用了log4j进行日志的定义,配置lo4j:
》如果要使用所有的属性文件,按照WEB开发标准,这些文件应该放在“WEB-INF/classes”目录之中,创建此目录:
mkdir -p /solr/webapp/WEB-INF/classes
》将log4j文件拷贝到此目录:
cp /usr/local/solr/server/resources/* /solr/webapp/WEB-INF/classes/
》修改log4j2.xml配置文件日志输出位置:vim /solr/webapp/WEB-INF/classes/log4j2.xml
%s/\${sys:solr.log.dir}/\/solr\/logs/g //在命令行模式下,进行替换
7. 在Tomcat中添加Solr的虚拟目录:vim /usr/local/tomcat/conf/server.xml
<Context path="/solr" docBase="/solr/webapp"/> //在<Host>节点中添加虚拟目录
8. 启动Tomcat:
/usr/local/tomcat/bin/catalina.sh stop
/usr/local/tomcat/bin/catalina.sh start
9. 通过浏览器进行访问:http://192.168.28.226/solr/index.html
二、安全访问:现在Solr通过浏览器谁都可以访问,可以借助Tomcat设置用户名、密码
1. 在Tomcat中设置用户名、密码:vim /usr/local/tomcat/conf/tomcat-users.xml
<role rolename="solr"/> //角色 <user username="solr" password="123456" roles="solr"/> //用户信息
2. 在Solr的配置问价中进行对应角色的设置:vim /solr/webapp/WEB-INF/web.xml
<security-constraint> <web-resource-collection> <web-resource-name>Solr</web-resource-name> <url-pattern>/</url-pattern> <http-method>TRACE</http-method> </web-resource-collection> <auth-constraint> <role-name>solr</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> <realm-name>Solr-Realm</realm-name> </login-config>
3. 配置完毕,进行Tomcat的重新启动:
/usr/local/tomcat/bin/catalina.sh stop
/usr/local/tomcat/bin/catalina.sh start
4. 通过浏览器进行访问时需要登录:http://192.168.28.226/solr/index.html
三、Core配置:
虽然这个时候已经成功的实现了Solr工具的正确部署和配置,但是这个时候的Solr还无法为用户提供任何的检索服务的,应为没有所谓的Core存在,在Solr之中Core是整个的处理核心,功能就是进行数据的检索操作,但是如果没有进行任何的配置,是无法进行Core创建的,一旦创建会产错误。
1. 为solr/home创建子目录:mkdir -p /solr/home/solr-core/conf
2. 拷贝solr开发包:cp -r /usr/local/solr/server/solr/configsets/_default/conf/* /solr/home/solr-core/conf/
3.拷贝core的依赖库:
cp -r /usr/local/solr/contrib/ /solr/home/
cp -r /usr/local/solr/dist/ /solr/home/
4. 修改核心配置文件目录:vim /solr/home/solr-core/conf/solrconfig.xml
%s/\${solr.install.dir:..\/..\/..\/..}/\${solr.install.dir:..}/g //在命令行模式下进行替换
5. 修改完毕,进行Tomcat的重新启动:
/usr/local/tomcat/bin/catalina.sh stop
/usr/local/tomcat/bin/catalina.sh start
6. 浏览器进行访问:http://192.168.28.226/solr/index.html
进行core的创建,以后core的名称尽量用“happy-core”这种格式。