[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Apache mod_proxy as reverse proxy



I've got what seems to be a pretty common setup, and things aren't working correctly and want to know if it's something that I've configured wrong, or if it's something deeper. Here's the setup. 

Publicly accessable apache box henceforth referred to "http://proxy/";
Private apache box henceforth referred to as "http://internal/";

I'd like for anyone to be able to access the server http://proxy/internal and have it be exactly the same as if they were on our private network and accessing http://internal/. "Read the apache docs" you cry out! I've been down that road my friend, and it works as advertised in the most trivial case. 

I've set up the following parameters in the virtual host declaration on http://proxy/

ProxyPass         /internal/ http://internal/
ProxyPassReverse  /internal/ http://internal/

That's according to the Apache mod_proxy Docs on apache.org, easy so far. 

Everything works as advertised until http://internal/ serves up a redirect or a cgi script to the user via http://proxy/. 

For instance, if the page http://internal/home.html has the following link on it. 
<a href="/cgi-bin/click.cgi">Click here</a> 

Clicking the link will not request http://internal/cgi-bin/click.cgi as it would from our internal network, it would request http://proxy/cgi-bin/click.cgi

Now, if I'd have been using absolute URL's in the links (eg http://internal/cgi-bin/click.cgi) I can understand that the link wouldn't work, but I don't see why mod_proxy isn't working the way I expect. 

It seems that the mod_proxy module should know that a request on http://proxy/internal/* should be treated as a request for http://internal/*. 

I've poked around with the mod_rewrite module to no immediate avail, I think my answer lies there, but I don't know enough to get started. 

Anyone have any pointers? Thanks. 

-- 
Dustin Douglas
--------------
Free The Lapland Six!!!



Reply to: