You'll be configuring Apache as a "reverse proxy" - that search term will point you to a wealth of information regarding the configuration, but here's an example that should get you most of the way to the deployment you're looking for.
If you'll be using a different hostname and different <VirtualHost>
, then you can do something like this:
<VirtualHost *:80>
ServerName sinatra.example.com
# Any normal settings you use go here; access logs, ServerAdmin, etc
# Replace the 9999 below with the port that thin is using, note that it can't
# be the same as Apache's port.
# This can also be a service running on adifferent computer if you
# use another IP address instead of 127.0.0.1
ProxyPass / http://127.0.0.1:9999/
ProxyPassReverse / http://127.0.0.1:9999/
</VirtualHost>
An alternative configuration that may be of use to you would be to just make it a subdirectory of an existing <VirualHost>
; you'd add a <Location>
block to your existing config:
<Location /sinatra/>
ProxyPass http://127.0.0.1:9999/
ProxyPassReverse http://127.0.0.1:9999/
</Location>