httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nik600 <nik...@gmail.com>
Subject Re: forward request with proxy_http in custom module
Date Fri, 17 Aug 2012 14:52:42 GMT
Ok, it wasn't clear to me to return DECLINED to look for other
handlers, and also wasn't clear the possibility to specify an order.

Now it works, thanks.

On Fri, Aug 17, 2012 at 4:42 PM, Sorin Manolache <sorinm@gmail.com> wrote:
> On 2012-08-17 16:25, nik600 wrote:
>>
>> Dear all
>>
>> i'm trying to code a custom module that will implement some logic this
>> is the concept of the module:
>>
>> *********************************
>>
>> /*
>> * some stuff...
>> */
>> if(condition){
>>
>> /*return a custom result*/
>>
>> return OK;
>>
>> }else{
>> /*forward the request to another server*/
>>
>>             r->filename = "proxy:http://www.google.it/";
>>             r->proxyreq = PROXYREQ_PROXY;
>>             r->handler  = "proxy-server";
>>
>> return OK;
>> }
>> *********************************
>>
>> But it seems that when i go into the else condition the proxy request
>> isn't handled.
>>
>> proxy and proxy_http are enabled and correctly working.
>>
>> Is this code correct to forward a request and make my module working
>> as a proxy_http ?
>
>
>
> Try
>
> if (condition) {
>  ...
>  return OK;
> } else {
>  return DECLINED;
> }
>
> and make sure your handler runs before mod_proxy's:
>
> static const char *succ[] = {"mod_proxy.c", NULL};
> ap_hook_handler(&your_handler, NULL, succ, APR_HOOK_MIDDLE);
>
> Then put a ProxyPass in your conf:
>
> <Location /your_url>
>    ProxyPass http://www.google.it/ keepalive=On
> </Location>
>
> Also make sure you do not check on r->handler. Even if you set "SetHandler
> your_handler", ProxyPass will overwrite it with "proxy-server".
>
>
> Sorin
>
>>
>> Thanks in advance
>>
>



-- 
/*************/
nik600
http://www.kumbe.it

Mime
View raw message