Monthly Archives: May 2014

Apply a Rewrite Directive to a Solr Instance

After exposing the Solr endpoint with a reverse proxy, it’s important to note that it also exposes the Solr admin panel to the end-user. This is not desired.

Flowchart of a RewriteRule directive that rests on website.com’s httpd.conf file.

Flowchart of a RewriteRule directive that rests on website.com’s httpd.conf file.

Problem:

  • Solr’s admin panel becomes exposed from the reverse proxy.

Solutions:


RewriteRule ^/solr/$ / [R=301,L,DPI]

Reverse Proxy a Solr Instance

It’s encouraged that you secure your Solr instance by placing the application on a different file server and behind a firewall. That’s an issue if you are trying to consume data from the Solr instance leveraging AJAX techniques.

reverse_proxy

Flowchart of a reverse proxy directive that rests on website.com’s httpd.conf file.

Problems:

  • www.website.com and Apache Solr live on separate boxes.
  • A firewall protecting Apache Solr plus the cross-domain issue does not expose the necessary end-point to consume via AJAX.
  • Depending on your sys admin setups, Solr may not live on a fully qualified domain (ie. http://12.34.56.789:8983/solr/#/)
  • An AJAX call to consume the Solr instance’s JSON/XML won’t work cross-domain.

Solution:

  • Reverse Proxy directive, mod_proxy – Apache HTTP Server
  • This allows for an endpoint that is visible to the browser and we can consume the JSON/XML that rests within the Solr instance.

ProxyPass /solr http://12.34.56.789:8983/solr/#/
ProxyPassReverse /solr http://12.34.56.789:8983/solr/#/

Don’t forget to apply a RewriteRule Directive to protect the Solr admin panel, once you’ve exposed it to the browser!