我正在尝试将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系统上工作。