Apache Web服务器后面的反向代理Solr

我有一个现有的apache Web服务器(2.2.15),配置了各种安全细节(仅限https / authentication / authorization /等).我可以依靠这个服务器来处理我的solr安装的访问要求.

我有一个基本的“示例”solr实例,并在一台单独的机器上运行. (Solr 4.8.0)

我希望能够将网址https:// myserver / department / team / search / ….重定向到另一台(私有)计算机上运行的Solr实例http:// solrserver:8983 /

我已经配置了apache服务器:

ProxyPass /department/team/search/ http://solserver:8983/
ProxyPassReverse /department/team/search/ http://solserver:8983/

我有一些成功,正在处理https,处理身份验证/访问,等等.

当我浏览到url时,它甚至会加载基本的solr页面,但内部的页面具有以下内容:

  <script type="text/javascript">

  var app_config = {};

  app_config.solr_path = '\/solr';
  app_config.core_admin_path = '\/admin\/cores';

  </script>

那(我相信)导致JavaScript代码尝试调用:

 https://myserver/solr/admin/cores?wt=json&indexInfo=false&_=1399485239437

代替

 https://myserver/department/team/search/solr/admin/cores?wt=json&indexInfo=false&_=1399485239437

我相信这两个值是可配置的(app_config.solr_path和app_config.core_admin_path),但我无法知道如何/在哪里做……

问题:

>如何更改为app_config.solr_path和app_config.core_admin_path设置的值?
>或者,这可能是完全做到这一点的错误方法,有更好的方法吗? (虽然apache webserver提供的身份验证/安全性现在很完美….)

最佳答案 这适合我.

<VirtualHost *:8080>
    ServerName solr.xyz.com.br  
    ProxyPreserveHost on
    ProxyRequests off   

    RewriteEngine On
    RewriteRule ^\/solr(.*)$$1 [L,R]

    ProxyPass / ajp://localhost:8009/solr/
    ProxyPassReverse / ajp://localhost:8009/solr/
</VirtualHost>
点赞