Confused Development

I develop software and I often get confused in the process. I usually find the answers after a while, but a month later I can't remember them. So from now on, I will write them down here.

Tuesday, October 13, 2009

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: , , , ,

2 Comments:

At 10:48 pm, Blogger Dan Smith said...

Your proxy angle brackets are incorrect.

It should say


...


Thanks for the tip!

 
At 2:30 pm, Blogger Knud Möller said...

Thanks for the heads up, I corrected it!

 

Post a Comment

<< Home