Forum: NGINX Can I log HTTP 400s to a different log file instead of my default access logs

2974d09ac2541e892966b762aad84943?d=identicon&s=25 imran (Guest)
on 2011-11-07 12:21
(Received via mailing list)
Hello

I'd like to know if its possible for me to log HTTP 400 errors to a
different log file. Right now they go in the access log.

To give some background, we've got this problem where if a single
resource is requested from chrome, after the resource request is served,
a http 400 error is logged in the access logs. This I've understood to
be is due to the nature of connections opened by Chrome (2 for every
request) and one of the connections not been used before its closed. And
nginx reports a 400 in this instance. I've gathered this based on a
different forum entry. And when this 400 is logged, the
$request_filename is /etc/nginx//html

So I'm looking at any possibility where the 400s can be logged else
where. I tried the following with no luck as well;

server {
  location / {
      if ($request_filename ~* /etc/nginx) {
         access_log /someotherlog.log myformat
      }
  }
}

Any help/advice is much appreciated. Thanks!!

Cheers
-- Imran

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,217913,217913#msg-217913
2974d09ac2541e892966b762aad84943?d=identicon&s=25 imran (Guest)
on 2011-11-07 12:38
(Received via mailing list)
Also to add on a bit more about the chrome connection issue which is
causing the 400, I turned on info logging for error logs and when I get
the 400, it logs a 'client closed prematurely connection while reading
client request...' in the error logs.

Cheers
-- Imran

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,217913,217916#msg-217916
526b09f2b949aae346eda86df5827b1f?d=identicon&s=25 "António P. P. Almeida" <appa@perusio.net> (Guest)
on 2011-11-07 12:39
(Received via mailing list)
On 7 Nov 2011 11h21 WET, nginx-forum@nginx.us wrote:

> used before its closed. And nginx reports a 400 in this
> instance. I've gathered this based on a different forum entry. And
> when this 400 is logged, the $request_filename is /etc/nginx//html

Try (untested):

at the http level:

map $request_filename $is_400 {
   default 0;
   /etc/nginx/html 1;
}

on the vhost config:

error_page 400 @log-400;

location @log-400 {

   access_log /path/to/400.log;

}

Caveat emptor: I've never played with the access_log directive that
much.

--- appa
526b09f2b949aae346eda86df5827b1f?d=identicon&s=25 "António P. P. Almeida" <appa@perusio.net> (Guest)
on 2011-11-07 13:05
(Received via mailing list)
On 7 Nov 2011 11h38 WET, appa@perusio.net wrote:

>> understood to be is due to the nature of connections opened by
> default 0;
> /etc/nginx/html 1;
> }

Oops. Solly I haven't my coffe yet :)

Try (untested):

at the http level:

map $request_filename $is_400 {
   default 0;
   /etc/nginx/html 1;
}

On the vhost:

if ($is_400) {
  return 302 @log-400;
}

location @log-400 {
   access_log /path/to/400.log;
}

--- appa
2974d09ac2541e892966b762aad84943?d=identicon&s=25 imran (Guest)
on 2011-11-07 14:03
(Received via mailing list)
Hi

Thanks for your reply. I tried this but didn't have any luck with it.
Based on the error reported on the error log (client closed permaturely
connection while reading client request line), I'm wondering if i can
instead ignore logging those errors in the access logs. Would you if
that's possible? Thanks!!

Cheers
-- Imran

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,217913,217921#msg-217921
526b09f2b949aae346eda86df5827b1f?d=identicon&s=25 "António P. P. Almeida" <appa@perusio.net> (Guest)
on 2011-11-07 15:20
(Received via mailing list)
On 7 Nov 2011 13h03 WET, nginx-forum@nginx.us wrote:

Well you can try this:

location @is-400 {
  access_log off;
}

If you want to re-purpose the 400 code you have to use the error_page
directive.

--- appa
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.