How to tell when mod_proxy backend request timed out?

How to tell when mod_proxy backend request timed out?

am 18.09.2008 18:17:35 von Adam Woodworth

I'm using mod_perl 2.0.3 with Apache 2.2.9 and mod_proxy for reverse
proxying. Is there a way, from my mod_perl application, that I can
tell when the connection to the backend server in mod_proxy timed out?
I.e., mod_proxy made a connection to the backend, but the backend
didn't respond in the configured number of timeout seconds?

I know that there's the Apache2::RequestRec::request_time variable,
and I can do the simple math to figure out how long ago the request
started, but since mod_proxy does actually know when a timeout
happens, does mod_proxy bubble that info up into something that is
exposed by the mod_perl API anywhere? It would be nice to just have
simple access to an error code, to know whether it was a timeout or
just an aborted connection.

Thanks,
Adam

Re: How to tell when mod_proxy backend request timed out?

am 18.09.2008 19:05:02 von Fred Moyer

Adam Woodworth wrote:
> I'm using mod_perl 2.0.3 with Apache 2.2.9 and mod_proxy for reverse
> proxying. Is there a way, from my mod_perl application, that I can
> tell when the connection to the backend server in mod_proxy timed out?
> I.e., mod_proxy made a connection to the backend, but the backend
> didn't respond in the configured number of timeout seconds?
>
> I know that there's the Apache2::RequestRec::request_time variable,
> and I can do the simple math to figure out how long ago the request
> started, but since mod_proxy does actually know when a timeout
> happens, does mod_proxy bubble that info up into something that is
> exposed by the mod_perl API anywhere? It would be nice to just have
> simple access to an error code, to know whether it was a timeout or
> just an aborted connection.

I'm not sure if I completely understand your scenario - do you have
mod_proxy enabled apache reverse proxying to mod_perl? If so, you can
use $r->connection->aborted to determine if the connection is invalid.

http://perl.apache.org/docs/2.0/api/Apache2/Connection.html# C_aborted_

Re: How to tell when mod_proxy backend request timed out?

am 18.09.2008 19:25:06 von Perrin Harkins

On Thu, Sep 18, 2008 at 12:17 PM, Adam Woodworth wrote:
> I'm using mod_perl 2.0.3 with Apache 2.2.9 and mod_proxy for reverse
> proxying. Is there a way, from my mod_perl application, that I can
> tell when the connection to the backend server in mod_proxy timed out?
> I.e., mod_proxy made a connection to the backend, but the backend
> didn't respond in the configured number of timeout seconds?

I hope you don't mean that you have mod_perl compiled into your
reverse proxy. It should only be in the backend.

I think that mod_proxy delivers a specific error message and status
when it times out, so you can probably use ErrorDocument to specify a
custom page for that.

- Perrin