You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Sam Reid <sa...@evolvosystems.com> on 2002/09/10 05:32:12 UTC

[users@httpd] mod_proxy GET variables

Hi all,

I usually try not to bother lists if I can possibly help it, but after
driving myself nuts trying to understand mod_proxy when it didn't work
the way I expected, I'm now at the point of desperation/giving up. I
have a feeling that I'm just missing something obvious though, so
possibly someone here can help.

I have a virtual host on my Apache server which is on a public IP
address. This host is supposed to be a non-caching reverse proxy for a
web application running on another web server inside the NAT'd network,
192.168.0.xxx.

I've set up the Virtual host with the following directives:

<IfModule mod_proxy.c>
      ProxyRequests Off
      NoCache
      ProxyPass / http://192.168.0.126/
      ProxyPassReverse / http://192.168.0.126/
</IfModule>

This all works perfectly for all POST requests and GET requests without
parameters.

However while 'GET http://public.address.com/' and 'GET
http://public.address.com/index.php' both work, 'GET
http://public.address.com/index.php?fubar=123' returns a 404!

Why is this, and what can I do about it? Appending any parameters with a
"?" to a GET returns a 404 and a message in the proxying server's log
files like this:

[Tue Sep 10 12:16:03 2002] [error] [client 1.2.3.4] File does not exist:
proxy:http://192.168.0.126/index.php?fubar=123

After checking the origin server's logs it is clear that the request is 
never made by the proxy to the origin server if there is a "?" appended 
to the file name.

I have tried messing around with mod_rewrite but despite reading Ralph
Engelschall's tutorial and examples still couldn't quite see where it
fits in to the mod_proxy scheme of things.

I replaced the ProxyPass and ProxyReservePass with the following, but 
the results were identical:

RewriteEngine On
RewriteRule ^/(.*) http://192.168.0.126/$1 [P]

Any relevant example or even a hint would be hugely appreciated!

I'm running Apache/1.3.26 (Unix) mod_gzip/1.3.19.1a PHP/4.0.6 on 
Slackware 7.0

-Sam

-- 
Sam Reid
Evolvo Systems Pty Ltd.
Level 3, 351-353 Elizabeth Street
Melbourne, VIC, 3000
sam@evolvosystems.com
tel. +613 9642 3200
fax. +613 9642 4108
mob. +613 0421 033 343
http://www.evolvosystems.com



---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] mod_proxy GET variables

Posted by Sam Reid <sa...@evolvosystems.com>.
Sorry to reply to my own post, but I've just discovered the problem.

mod_gzip was somehow messing with the URL. The problem did not manifest 
itself when the RewriteRule was hooked to [R] redirect, but hooked to 
[P] proxy would immediately cause problems.

As soon as I commented out mod_gzip everything worked perfectly. 
Hopefully my experience can save someone else wasting 2 days on this as 
I did!

-Sam

Sam Reid wrote:
> Hi all,
> 
> I usually try not to bother lists if I can possibly help it, but after
> driving myself nuts trying to understand mod_proxy when it didn't work
> the way I expected, I'm now at the point of desperation/giving up. I
> have a feeling that I'm just missing something obvious though, so
> possibly someone here can help.
> 
> I have a virtual host on my Apache server which is on a public IP
> address. This host is supposed to be a non-caching reverse proxy for a
> web application running on another web server inside the NAT'd network,
> 192.168.0.xxx.
> 
> I've set up the Virtual host with the following directives:
> 
> <IfModule mod_proxy.c>
>      ProxyRequests Off
>      NoCache
>      ProxyPass / http://192.168.0.126/
>      ProxyPassReverse / http://192.168.0.126/
> </IfModule>
> 
> This all works perfectly for all POST requests and GET requests without
> parameters.
> 
> However while 'GET http://public.address.com/' and 'GET
> http://public.address.com/index.php' both work, 'GET
> http://public.address.com/index.php?fubar=123' returns a 404!
> 
> Why is this, and what can I do about it? Appending any parameters with a
> "?" to a GET returns a 404 and a message in the proxying server's log
> files like this:
> 
> [Tue Sep 10 12:16:03 2002] [error] [client 1.2.3.4] File does not exist:
> proxy:http://192.168.0.126/index.php?fubar=123
> 
> After checking the origin server's logs it is clear that the request is 
> never made by the proxy to the origin server if there is a "?" appended 
> to the file name.
> 
> I have tried messing around with mod_rewrite but despite reading Ralph
> Engelschall's tutorial and examples still couldn't quite see where it
> fits in to the mod_proxy scheme of things.
> 
> I replaced the ProxyPass and ProxyReservePass with the following, but 
> the results were identical:
> 
> RewriteEngine On
> RewriteRule ^/(.*) http://192.168.0.126/$1 [P]
> 
> Any relevant example or even a hint would be hugely appreciated!
> 
> I'm running Apache/1.3.26 (Unix) mod_gzip/1.3.19.1a PHP/4.0.6 on 
> Slackware 7.0
> 
> -Sam
> 


-- 
Sam Reid
Evolvo Systems Pty Ltd.
Level 3, 351-353 Elizabeth Street
Melbourne, VIC, 3000
sam@evolvosystems.com
tel. +613 9642 3200
fax. +613 9642 4108
mob. +613 0421 033 343
http://www.evolvosystems.com


---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org