Use Apache 2 proxy to expose only Marmotta SPARQL endpoint
Did some testing and determined we can use Apache 2 to proxy Tomcat, allowing us to only expose the SPARQL endpoint:
jbourquin@igskrdcnvmw3004:~/source/makb-docker-container$ curl "http://144.47.163.4/marmotta/sparql/select?query=SELECT%20*%20WHERE%20%7B%20%3Fs%20%3Fp%20%3Fo%20%7D%20LIMIT%2010"
<?xml version='1.0' encoding='UTF-8'?>
<sparql xmlns='http://www.w3.org/2005/sparql-results#'>
<head>
<variable name='s'/>
<variable name='p'/>
<variable name='o'/>
</head>
<results>
<result>
<binding name='p'>
<uri>http://www.w3.org/2000/01/rdf-schema#label</uri>
</binding>
<binding name='s'>
<uri>http://144.47.163.4/marmotta/ldp</uri>
</binding>
<binding name='o'>
<literal>Marmotta's LDP Root Container</literal>
</binding>
</result>
<result>
<binding name='p'>
<uri>http://www.w3.org/1999/02/22-rdf-syntax-ns#type</uri>
</binding>
<binding name='s'>
<uri>http://144.47.163.4/marmotta/ldp</uri>
</binding>
<binding name='o'>
<uri>http://www.w3.org/ns/ldp#Resource</uri>
</binding>
</result>
<result>
<binding name='p'>
<uri>http://www.w3.org/1999/02/22-rdf-syntax-ns#type</uri>
</binding>
<binding name='s'>
<uri>http://144.47.163.4/marmotta/ldp</uri>
</binding>
<binding name='o'>
<uri>http://www.w3.org/ns/ldp#RDFSource</uri>
</binding>
</result>
<result>
<binding name='p'>
<uri>http://www.w3.org/1999/02/22-rdf-syntax-ns#type</uri>
</binding>
<binding name='s'>
<uri>http://144.47.163.4/marmotta/ldp</uri>
</binding>
<binding name='o'>
<uri>http://www.w3.org/ns/ldp#Container</uri>
</binding>
</result>
<result>
<binding name='p'>
<uri>http://www.w3.org/1999/02/22-rdf-syntax-ns#type</uri>
</binding>
<binding name='s'>
<uri>http://144.47.163.4/marmotta/ldp</uri>
</binding>
<binding name='o'>
<uri>http://www.w3.org/ns/ldp#BasicContainer</uri>
</binding>
</result>
<result>
<binding name='p'>
<uri>http://www.w3.org/ns/ldp#interactionModel</uri>
</binding>
<binding name='s'>
<uri>http://144.47.163.4/marmotta/ldp</uri>
</binding>
<binding name='o'>
<uri>http://www.w3.org/ns/ldp#Container</uri>
</binding>
</result>
<result>
<binding name='p'>
<uri>http://purl.org/dc/terms/created</uri>
</binding>
<binding name='s'>
<uri>http://144.47.163.4/marmotta/ldp</uri>
</binding>
<binding name='o'>
<literal datatype='http://www.w3.org/2001/XMLSchema#dateTime'>2020-06-10T21:58:37.000Z</literal>
</binding>
</result>
<result>
<binding name='p'>
<uri>http://purl.org/dc/terms/modified</uri>
</binding>
<binding name='s'>
<uri>http://144.47.163.4/marmotta/ldp</uri>
</binding>
<binding name='o'>
<literal datatype='http://www.w3.org/2001/XMLSchema#dateTime'>2020-06-10T21:58:37.000Z</literal>
</binding>
</result>
</results>
</sparql>
Please note I am querying port 80 on the docker container instead of port 8080.
When I try to query say /marmotta, nothing gets returned:
jbourquin@igskrdcnvmw3004:~/source/makb-docker-container$ curl "http://144.47.163.4/marmotta"
CTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
<hr>
<address>Apache/2.4.38 (Debian) Server at 144.47.163.4 Port 80</address>
</body></html>
Edited by Bourquin, Jacques (Contractor) Jules