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