Turns out it was not as easy as it may seem. This page describes things to do in your Linux host.
Install apache2 with mod_proxy, mod_proxy_html and mod_proxy_http (installed by default in Raspbian)
Enable mod_rewrite, mod_cache, mod_proxy, mod_proxy_http, mod_proxy_html (e.g. using a2enmod rewrite cache proxy proxy_http proxy_html)
Use a2ensite.
Throttle the Apache server to match to ITS server:
# ITS can really only handle one connection at a time! MaxRequestsPerChild 1 ThreadsPerChild 1 MaxClients 1
Basic VirtualHost stuff:
<VirtualHost *:80>
ServerAdmin victor@up.update.uu.se
ServerSignature off
ProxyRequests off
ServerName up.update.uu.se
ProxyPreserveHost On
ErrorLog ${APACHE_LOG_DIR}/up-error.log
CustomLog ${APACHE_LOG_DIR}/up-access.log combined
LogLevel error
Optional: error documents for when the ITS server fails/crashes:
Alias /its-error/ "/home/klh10/its/apache-errors/" ProxyPass /its-error/ ! ProxyErrorOverride on ErrorDocument 503 /its-error/503.html ErrorDocument 404 /its-error/404.html
Optional(?): caching
CacheEnable disk /
Optional: avoid robots which don't seem to respect robots.txt
# Forbid the darn Baidu robot which doesn't respect robots.txt! And the Page2RSS thing which also doesn't, and connects every 2 minutes
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^.*Baiduspider [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*Page2RSS [NC]
RewriteRule .* - [L,F]
The real stuff: the proxy
<Location />
ProxyPass http://its-up.update.uu.se/ nocanon max=1 disablereuse=on retry=0 timeout=10 connectiontimeout=5
ProxyPassReverse http://its-up.update.uu.se/
# ITS only handles HTTP 1.0 and no keepalive
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
Order allow,deny
Allow from all
</Location>