Hi Andre, thanks for the response.

I don't actually want to use a PerlResponseHandler, I was just using that to
make sure my filter did what I wanted it to do.

I actually wanted the request filter to add the POST body expecting then
that mod_proxy would do the rest. I expected mod_proxy to kick in around
PerlTransHandler time but wasn't sure when my request filter got called.
Either way it wasn't working :)

I may see whether I can get the connection filter to add the content I was
just after a little clarification when filters were called in relation to
mod_proxy.

Thanks again.


On 25 August 2010 07:12, André Warnier <a...@ice-sa.com> wrote:

> James Lee wrote:
>
>> Hi mod_perl community, this is my first post so be gentle with me.
>>
>> I'm trying to create something which translates a GET request into a POST
>> (creating the body dynamically) and then hand off the POST to another
>> server.
>>
>> I have created a mod_perl connection filter to change the GET to a POST in
>> the request line. It also adds Content-Length and Content-Type headers and
>> this works fine.
>>
>> I then have a request filter which creates the POST body. This works when
>> the request is handled by a PerlResponseHandler but I'm trying to offload
>> the request to mod_proxy as the responses can be quite large but I just
>> can't get it to play ball. I see the request filter being called but the
>> POST body never arrives at the target server. I suspect this is a timing
>> issue, ie: mod_proxy kicking in before my request filter but I'm not
>> certain.
>>
>
> Exactly. By the time your response handler is invoked, the time for
> mod_proxy is long past.
>
> One approach would be : have your PerlResponseHandler send the request
> directly to the back-end server, using LWP, read the response, and return
> this response as the response for your response handler.  In other words, do
> yourself what mod_proxy would do.
>
>
>
>> Can anybody shed some light on this or correct my approach. I was going to
>> add the POST body in the connection filter but it seemed cleaner/easier to
>> do it in a request filter.
>>
>
> In the mod_perl documentation, there is somewhere a schema of the different
> Apache phases, and when the different handlers get invoked.  I beliebe
> mod_proxygets invoked somewhere around the Fixup phase, so if you want to
> beat it, you have to be earlier than that.
>
>
>
>> I've looked on the mailing list and found a few things that touch on this
>> (
>> http://tech.groups.yahoo.com/group/modperl/message/54541) but nothing
>> that's
>> close enough to help.
>>
>> Config below ... I've not included perl code as this message is quite long
>> anyway. Please let me know if it would be helpful.
>> Thanks in advance, James.
>>
>>
>> ***
>> httpd.conf extract:
>>
>>
>> PerlInputFilterHandler Sample::RequestTweaker::change_get_to_post
>>
>> <Location /reports>
>>   PerlInputFilterHandler Sample::RequestTweaker::inject_post_data
>>   ProxyPass http://appserver/reports-engine
>> </Location>
>>
>>
>

Reply via email to