You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modproxy-dev@apache.org by Jukka Pihl <ju...@entirem.com> on 2001/11/09 15:32:38 UTC

ProxyPass. small and usefull patch.


We have used quite much apache as frontend machine
where mod_proxy + 'ProxyPass' has been very important feature.

There is one thing that is too difficult with ProxyPass.

I have situation.

Where I want someting like

	/ 	         ==>  http://other-host/
	/some-images/    ==>  keep local.

I want to say to mod_proxy that proxypass everything EXCEPT that(and that)
to given host.

My medicine is to add some lines of code to every new version of apache.
(to mod_proxy.c)

Now I can write somehing like:

	ProxyPass  /some-images/   ! 
	ProxyPass  / 	           http://other-host/

Where  '!' means that given uri is not proxied but kept local.
It makes much simpler to make some proxy-rules.
Same can be done with mod_rewrite.... but that is more complicated.




HOW:

I just add some code to  mod_proxy.c - function 

	static int proxy_trans(request_rec *r)


....next patch is to Apache 2.0 - httpd-2_0_27/modules/proxy/

     Jukka Pihl
     jukka.pihl at entirem.com

--------------------  PATCH --------------------
--- mod_proxy.c.orig	Fri Nov  9 16:11:14 2001
+++ mod_proxy.c	Fri Nov  9 16:16:04 2001
@@ -188,6 +188,9 @@
         len = alias_match(r->uri, ent[i].fake);
 	    
        if (len > 0) {
+           if((ent[i].real[0] == '!') && (ent[i].real[1] == 0))
+                return DECLINED;
+
            r->filename = apr_pstrcat(r->pool, "proxy:", ent[i].real,
                                  (r->uri + len - 1), NULL);
            r->handler = "proxy-server";