We use squid (2.5.STABLE7) as a reverse proxy, which passes requests to
Tomcat on another server on a private network, gets answers back from
that Tomcat and sends them back to the client. This works very well.

We also use the same SQUID as a proxy for those servers on the private
network so that they can access the internet. They send requests to
SQUID on port 3128, which returns the requested data. This also works

However, on the same server as Tomcat is a program called HTMLDOC which
creates PDFs for Tomcat. Tomcat instructs HTMLDOC to create a PDF,
HTMLDOC does this fine, except that to complete the PDF it needs to
reference in a logo which it tries to get from Tomcat via SQUID (the
logo is stored in the database behind Tomcat). So it requests the URL
for the logo from SQUID (acting as a proxy on 3128). SQUID then seems
to realise (quite rightly) that it should retrieve this from itself by
acting as a reverse proxy, but, instead of going back to Tomcat to
retrieve the logo from the database it reports the following:

2006/04/27 17:01:49| WARNING: Forwarding loop detected for:
Host: abcd.domain.com
User-Agent: HTMLDOC v1.8.23
Via: 1.1 server.private.domain.com:3128 (squid/2.5.STABLE7)
Cache-Control: max-age=259200
Connection: keep-alive

So it seems that SQUID will not allow a proxy request (outward) to
request something from itself acting as a reverse proxy (inward). Does
anyone known why this is?