Record log of full error response?

Hello nginxers,

I’ve read about the error_page[1] config setting and it’s great. However
serving a custom page instead of the error and just storing the error
code in an entry in /var/nginx/log/error.log is not enough for me: I
need to log the full page (the response besides the http status code).

Is there any way to do this? Any config setting I missed? Or any nginx
module that allows it?

Thanks,
Andres

[1] http://wiki.nginx.org/HttpCoreModule#error_page

serving a custom page instead of the error and just storing the error code
in an entry in /var/nginx/log/error.log is not enough for me: I need to
log the full page (the response besides the http status code).
Is there any way to do this? Any config setting I missed?

This suggests your are using dynamic language (like php) for serving
error
pages, right?
While it probably could be done with nginx itself (with using lua/perl
modules) in case of php you could just buffer the whole output (
PHP: ob_start - Manual ) and store wherever you
want.

rr

On 26/09/12 13:27, Reinis R. wrote:

serving a custom page instead of the error and just storing the error
code in an entry in /var/nginx/log/error.log is not enough for me: I
need to log the full page (the response besides the http status code).
Is there any way to do this? Any config setting I missed?

This suggests your are using dynamic language (like php) for serving
error pages, right?

Why?

No. I’m using a VM (that allows dynamic and static languages on top, but
the question of what kind of typing my language has I guess is already
out of topic).

While it probably could be done with nginx itself (with using lua/perl
modules) in case of php you could just buffer the whole output (
PHP: ob_start - Manual ) and store wherever you
want.

I’m using fastcgi for the communication between nginx and the
application server.

Do you think there is some setting in the fastcgi configuration that
would help me?

Thanks

I’m using fastcgi for the communication between nginx and the application
server.
Do you think there is some setting in the fastcgi configuration that would
help me?

You can try to use fastcgi_store (
Module ngx_http_fastcgi_module ) - it allows
nginx
to store the response from backend locally.

rr

On 26/09/12 19:35, Andres G. Aragoneses wrote:

On 26/09/12 13:27, Reinis R. wrote:

serving a custom page instead of the error and just storing the error
code in an entry in /var/nginx/log/error.log is not enough for me: I
need to log the full page (the response besides the http status code).
Is there any way to do this? Any config setting I missed?

This suggests your are using dynamic language (like php) for serving
error pages, right?

BTW, I’m not trying to log the error page I want to serve, but the error
page I got from the fastcgi source.

On 27/09/12 00:08, Reinis R. wrote:

I’m using fastcgi for the communication between nginx and the
application server.
Do you think there is some setting in the fastcgi configuration that
would help me?

You can try to use fastcgi_store (
Module ngx_http_fastcgi_module ) - it allows
nginx to store the response from backend locally.

Thanks Reinis, I’ll give that a go.