solr反向代理Apache2

我正在尝试将Apache2设置为solr反向代理。 Apache和Solr在同一台机器上。 Apache也正常服务于其他的东西。

/etc/apache2/config.d/ solsearchconfiguration文件

 # Proxy specific settings ProxyRequests Off ProxyPreserveHost Off <Proxy *> AddDefaultCharset off Order deny,allow Allow from all </Proxy> ProxyPass /solrsearch http://localhost:8983/solr/collection1/browse ProxyPassReverse /solrsearch http://localhost:8983/solr/collection1/browse 

现在尝试http:// localhost / solsearch给我的http:// localhost:8983 / solr / collection1 / browse的第一页,但与破碎的布局(如CSS缺less)。

结果:apache的error.log

 File does not exist: /var/www/solr, referer: [http://192.168.1.150/solrsearch] 

CSS内容页面和其他文件的链接可能是绝对path – 所以它们链接到/solr/path/to/css而不是path/to/css

你应该可以通过添加另一个ProxyPass来解决这个问题:

 ProxyPass /solrsearch http://localhost:8983/solr/collection1/browse ProxyPassReverse /solrsearch http://localhost:8983/solr/collection1/browse ProxyPass /solr http://localhost:8983/solr 

但是,如果这是一个公开可用的服务器,则应该小心,这不会暴露比您想要暴露的内容更多的内容。

只是在这里标记。 以下代理configuration允许默认的Solr浏览器在访问pipe理function的情况下(使用CSS,javascript等)进行操作:

 <IfModule mod_proxy.c> # Proxy specific settings ProxyRequests Off <Proxy *> AddDefaultCharset off Order deny,allow Allow from all </Proxy> # permit: # * queries # * javascript # * css # * term vectors # restrict: # * all other traffic (admin, etc) ProxyPassMatch "/solr/(.*/browse)" http://localhost:8983/solr/$1 ProxyPassMatch "/solr/(.*/terms)" http://localhost:8983/solr/$1 ProxyPassMatch "/solr/(.*/admin/file)" http://localhost:8983/solr/$1 ProxyPass /solr/js http://localhost:8983/solr/js ProxyPassReverse /solr http://localhost:8983/solr </IfModule> 

这是在我的Solr 6.1.0系统上工作。