Apache 更改Solr基上下文路径

Apache 更改Solr基上下文路径,apache,solr,jetty,Apache,Solr,Jetty,我已经在Ubuntu机器上安装了Solr(5.3.1和5.5.0) 我用apache做了一个 ProxyPass /MySolr http://{url}:8984/solr ProxyPassReverse /MySolr http://{url}:8984/solr 因此,当我加载{url}/MySolr时,仪表板不会加载,因为一个json http://{url}/solr/admin/cores?wt=json&indexInfo=false& 这很正常,因为要加载的正确URL为:

我已经在Ubuntu机器上安装了Solr(5.3.1和5.5.0)

我用apache做了一个

ProxyPass /MySolr http://{url}:8984/solr

ProxyPassReverse /MySolr http://{url}:8984/solr
因此,当我加载{url}/MySolr时,仪表板不会加载,因为一个json

http://{url}/solr/admin/cores?wt=json&indexInfo=false&

这很正常,因为要加载的正确URL为:

http://{url}/MySolr/admin/cores?wt=json&indexInfo=false&

当我看到其他资源时,solr会得到正确的URL,如:

http://{url}/MySolr/js/scripts/segments.js?\=5.5.0


有什么想法吗?

这个过程不起作用,因为这个json可能是用绝对路径指定的。在这种情况下,Solr不知道您的映射。如果要更改上下文路径,需要在Jetty上更改此配置。这样solr将开始使用新上下文。 第一步是创建一个符号链接
MySolr
,指向
solr
目录(默认位于
$solr\u INSTALL\u DIR/server/
)。 现在更改Jetty配置文件
$SOLR\u INSTALL\u DIR/server/contexts/SOLR Jetty context.xml
以指向新的上下文路径,如下所示:

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="contextPath"><Property name="hostContext" default="/MySolr"/></Set>
  <Set name="war"><Property name="jetty.base"/>/solr-webapp/webapp</Set>
  <Set name="defaultsDescriptor"><Property name="jetty.base"/>/etc/webdefault.xml</Set>
  <Set name="extractWAR">false</Set>
</Configure>

/solr webapp/webapp
/etc/webdefault.xml
假的

现在只需重新启动Solr,就可以使用新的基本上下文路径进行访问。

它可以工作!!真的谢谢!!在哪个级别创建符号链接$SOLR_INSTALL_DIR/server/MySolr->$SOLR_INSTALL_DIR/server/SOLR?@GéraldReinhart您是否尝试过在没有符号链接的情况下执行此操作?我找到了另一个解决方案。通过使用jetty.home和jetty.base设置,我们成功地基于相同的solr安装部署了两个不同的实例。在每个实例上,我们都可以定义url上下文:jetty.home是solr发行版本身jetty.base定义实例的特定设置:solr-jetty-context.xml请参见