custom 404 error_page seems to conflict with access_log off
Max
nginxyz at mail.ru
Sun Feb 26 22:17:08 UTC 2012
27 февраля 2012, 00:57 от Maxim Dounin <mdounin at mdounin.ru>:
> Hello!
>
> On Sun, Feb 26, 2012 at 08:43:07PM +0100, Grégory Pakosz wrote:
>
> > Hello,
> >
> > In my server block, I configured a custom 404 error page and I tried to
> > disable access log for /favicon.ico
> >
> > error_page 404 /404.html;
> > location = /favicon.ico {
> > access_log off;
> > }
> >
> > http://pastebin.com/39qXWuq2
> >
> > It seems that both conflicts.
> >
> > When favicon.ico is present:
> > curl -I http://mydomain.com/favicon.ico reports 200 status code and nothing
> > gets logged into my access log
> >
> > When favicon.ico is missing:
> > curl -I http://mydomain.com/favicon.ico reports 404 status code
> > curl http://mydomain.com/favicon.ico displays my custom 404 html page
> > and strangely the 404 error gets logged into my access log: "HEAD
> > /favicon.ico HTTP/1.1" 404 0 "-" "curl/7.19.7 (universal-apple-darwin10.0)
> > libcurl/7.19.7 OpenSSL/0.9.8r zlib/1.2.3"
> >
> > When I comment out #error_page 404 /404.html; when favicon.ico is missing:
> > curl -I http://mydomain.com/favicon.ico reports 404 status code
> > curl http://mydomain.com/favicon.ico displays nginx's default 404 page
> > nothing gets logged into my access log
> >
> > Can someone explain me this behavior?
>
> Requests are logged in a context of a location where processing ends.
>
> That is, if you have 404 error_page configured requests to a
> missing favicon.ico file are internally redirected to /404.html,
> and handled in an appropriate location, not in location =
> /favicon.ico where you have access_log switched off.
You may want to use the following to minimize the overhead
caused by useless requests for the missing favicon.ico file:
location = /favicon.ico {
access_log off;
return 204;
}
Max
More information about the nginx
mailing list