Reverse Proxy to Make SPARQL Endpoint Available on Nice URI
When you set up an RDF repository such as Sesame2, you are likely to get a SPARQL endpoint at a URI such as http://my.server.org:8080/openrdf-sesame/repositories/repname
. That's ok, but it doesn't look very nice. In order to serve the same endpoint at a nicer URI, say http://my.server.org/sparql
, you can set up something called a reverse proxy on your Apache server. Here is how to do it on Debian:
Add the Reverse Proxy Rule
In /etc/apache2/conf.d
, add a new configuration file sparql.conf
. Make it look like this:
# Make the SPARQL endpoint of the Sesame server running on port 8080 # available as http://my.server.org/sparql. # # Configuration is done as per the Basic Example for Reverse Proxies # in http://httpd.apache.org/docs/2.2/mod/mod_proxy.html . <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /sparql http://my.server.org:8080/openrdf-sesame/repositories/repname ProxyPassReverse /sparql http://my.server.org:8080/openrdf-sesame/repositories/repname
Enable the Proxy Modules
In order for this to work, Apache has to load a number of modules having to do with proxies. The easiest and safest way to load them is by using the a2enmod
command and select all proxy-related modules:
knumoe@exp3:/etc/apache2/conf.d$ sudo a2enmod Your choices are: actions alias asis auth_basic auth_digest authn_alias authn_anon authn_dbd authn_dbm authn_default authn_file authnz_ldap authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cern_meta cgi cgid charset_lite dav dav_fs dav_lock dbd deflate dir disk_cache dump_io env expires ext_filter file_cache filter headers ident imagemap include info ldap log_forensic mem_cache mime mime_magic negotiation php5 proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http rewrite setenvif speling ssl status substitute suexec unique_id userdir usertrack version vhost_alias Which module(s) do you want to enable (wildcards ok)? proxy*
Restart Apache
sudo /etc/init.d/apache2 restart
Labels: apache, command line, debian, proxy, shell