Re: Apache mod_rewrite/mod_proxy conflict?

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

 



Hi...

Thank you for Axel and Neil for answering my question. 
I understand it won't be a good idea to pass the proxy server ip
address/host name through parameter. Fortunately,  this is only used for
internal access only. My proxy server won't be connected to internet. The
reason is I do have more than 20 internal web servers. For each web server,
it doesn't have static IP. It can be change dynamically. The ip
address/hostname for each of my internal web server I get it through
parameter in the url.

Any idea?

Axel did mention in his post, I may be able to use RewriteMap. I will google
it.

Thank you

Pdt


Neil A. Hillard-2 wrote:
> 
> pdt_p wrote:
>> Hi...
>> 
>> from this solution:
>> RewriteRule ^/testing/(.*)$ http://myserverB/$1 [P,L]
>> RewriteRule ^/(.*)$ http://myserverA/$1 [P]
>> ProxyPassReverse /testing http://myserverB/
>> 
>> the original server url is fixed. In this case  http://myserverB and
>> http://myserverA. What if the original URL is dynamic which is passed
>> from
>> parameter?
>> for example: 
>>    http://<myReveseProxyHostName>/testing/myserverB/otherPath -->
>> http://myserverB/otherPath
>> 
>> I think for RewriteRule is quite straight forward: RewriteRule
>> ^/testing/(.*)$ http://$1 [P]
>> but how about the ProxyPassReverse?
> 
> You really don't want to do that...  think about the following:
> 
> http://reverse.proxy/testing/www.google.com/
> 
> And any others.  Your proxy could be used to launch an attack against a
> third party.
> 
> You could however use something like:
> 
> RewriteRule ^/testing/(servera|serverb|serverc)/(.*)$ http://$1/$2 [P]
> 
> Gut you'd need to add ProxyPassReverses in for all combinations!
> 
> 
> HTH,
> 
> 
> 				Neil.
> 
>> Neil A. Hillard-2 wrote:
>>> Tamer Embaby wrote:
>>>> I have the following simple setup:
>>>>
>>>> [1] LoadModule rewrite_module modules/mod_rewrite.so
>>>> [2] LoadModule proxy_module modules/mod_proxy.so
>>>> [3] LoadModule proxy_http_module modules/mod_proxy_http.so
>>>> [4] RewriteEngine on
>>>> [5] ProxyPass /testing http://myserverB/
>>>> [6] ProxyPassReverse /testing http://myserverB/
>>>> [7] RewriteRule ^/(.*)$ http://myserverA/$1 [P]
>>>>
>>>> My problem is:
>>>>
>>>> When I access http://myserver/testing/index.html, it gets handled by
>>>> the
>>>> rewrite rule and not the proxy module.
>>>>
>>>> The interesting point if I changed the order of LoadModule directives
>>>> so now it reads:
>>>> [1] LoadModule proxy_module modules/mod_proxy.so
>>>> [2] LoadModule proxy_http_module modules/mod_proxy_http.so
>>>> [3] LoadModule rewrite_module modules/mod_rewrite.so
>>>>
>>>> The proxy module handles the request and not the rewrite module!
>>>>
>>>> Is this behavior documented somewhere? Where can I read about it? I
>>>> tried to Google a lot with no good. How can I control it?
>>>>
>>>> Moreover, what if I compiled in the rewrite_mod and proxy_mod
>>>> statically
>>>> into Apache, how would I control the order of modules calling then?
>>>>
>>>> I did my home work, scanned the FAQ, Googled but I cannot come up with
>>>> any technical explanation for this.
>>> Simple answer - don't mix them in this way (that's what I've been doing,
>>> anyway)!  Stick to mod_rewrite and you should be fine:
>>>
>>> RewriteRule ^/testing/(.*)$ http://myserverB/$1 [P,L]
>>> RewriteRule ^/(.*)$ http://myserverA/$1 [P]
>>> ProxyPassReverse /testing http://myserverB/
>>>
>>> You can include:
>>>
>>> RewriteRule      ^/testing$ /testing/ [R,L]
>>>
>>> before the above if you want to handle a missing trailing slash.
> 
> 
> -- 
> Neil Hillard                    neil.hillard@xxxxxxxxxxxxxxxxxx
> AgustaWestland                  http://www.whl.co.uk/
> 
> Disclaimer: This message does not necessarily reflect the
>             views of Westland Helicopters Ltd.
> 
> ---------------------------------------------------------------------
> 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@xxxxxxxxxxxxxxxx
>    "   from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx
> For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Apache-mod_rewrite-mod_proxy-conflict--tp14251664p14292649.html
Sent from the Apache HTTP Server - Users mailing list archive at Nabble.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@xxxxxxxxxxxxxxxx
   "   from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx


[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux