[Zope-dev] Apache Mod_rewrite question

Ganesha Shanmuganathan sganesh at zeomega.com
Wed Jul 14 16:01:46 EDT 2004


Hi,

We are using mod_rewrite to redirect the incoming requests to one of the
zope instances running on the same machine. It is an SMP machine and has
4 zope instances. The map basically contains
<IP> port1|port2|port3

Where port1 and port2 etc are the ports where the zope is running. The
problem is mod_rewrite caches the map file based on map name instead of
file as I have mentioned below. But we have solved the problem by using
different map names in each of the <VirtualHost> sections.


thanks,
ganesh 

Zeomega LLC
Open minds' Open Solutions

Plano, Texas, USA
Bangalore, India
phone: 972-731-6750
http://www.zeomega.com

On Wed, 2004-07-14 at 02:23, Eugene wrote:
> Hello Ganesha,
> Wednesday, July 14, 2004, 1:40:14 AM, you wrote:
> 
> I'm using mod_rewrite with zope but without maps.
> Can your describe in details your task?
> 
> 
> GS> Hi,
> 
> GS> I came across a strange behavior of mod_rewrite while using with zope.
> GS> Although it is not a zope question, I was wondering if any of you have
> GS> run into this. We are using mod_rewrite to redirect the users to one of
> GS> the zope sites of a Zeo cluster.
> 
> GS> The directive RewriteMap has unexpected behavior when it is used to
> GS> define more than one map with same map name in diffrent places. Normally
> GS> all the directives within a tag applies only to that tag. 
> 
> GS> For example:
> 
> GS> <VirtualHost *>
> GS> ServerName   www.foo.com
> GS> DocumentRoot /var/www/foo
> GS> RewriteEngine on
> GS> RewriteLog    /var/log/httpd/foo.log
> GS> RewriteLogLevel  2
> GS> RewriteMap map rnd:/etc/httpd/conf/foomap.txt
> GS> RewriteRule ^/Foo(.*)
> GS> http://127.0.0.1${map:IP}/VirtualHostBase/http/foo/$1 [L,P]
> GS> </VirtualHost>
> 
> GS> <VirtualHost *>
> GS> ServerName   www.bar.com
> GS> DocumentRoot /var/www/bar
> GS> RewriteEngine on
> GS> RewriteLog    /var/log/httpd/bar.log
> GS> RewriteLogLevel  2
> GS> RewriteMap map rnd:/etc/httpd/conf/barmap.txt
> GS> RewriteRule ^/Bar(.*)
> GS> http://127.0.0.1${map:IP}/VirtualHostBase/http/bar/$1 [L,P]
> GS> </VirtualHost>
> 
> GS> The above is expected to work. However ModRewrite, does not read the map
> GS> file foomap.txt or barmap.txt everytime it needs it and it caches the
> GS> results after the first time it reads for faster operation.  
> 
> GS> The problem is the cache treats both the file as the same since they
> GS> have the same name! Hence if you visit foo.com first, the data stored in
> GS> foomap.txt is returned from the cache next time you visit foo.com or
> GS> bar.com. This causes apache to redirect into the wrong zope site.
> 
> GS> Has anyone else experienced similar problems ? 
> 
> GS> thanks,
> GS> ganesh
> 
> GS> Zeomega LLC
> GS> Open minds' Open Solutions
> 
> GS> Plano, Texas, USA
> GS> Bangalore, India
> GS> phone: 972-731-6750
> GS> http://www.zeomega.com
> 
> GS> _______________________________________________
> GS> Zope-Dev maillist  -  Zope-Dev at zope.org
> GS> http://mail.zope.org/mailman/listinfo/zope-dev
> GS> **  No cross posts or HTML encoding!  **
> GS> (Related lists - 
> GS>  http://mail.zope.org/mailman/listinfo/zope-announce
> GS>  http://mail.zope.org/mailman/listinfo/zope )
> 
> 



More information about the Zope-Dev mailing list