Boost your nginx web server performance by rewriting favicon.ico requests correctly

Popular sites receive high concurrent web visitor requests and some clients send bad favicon.ico fetch requests. If you are running nginx you probably didn’t notice that, for example: /category/favicon.ico generate significant 404 errors in your server error log file, because this file is located only in root, e.g. /favicon.ico.

Every request for non-existent file takes some load and every 404 missing file error is usually logged into error_log file, unless you have disabled error logging. To forward all non-root favicon.ico requests to /favicon.ico you can set-up the following rewrite rule in nginx.conf file in the correct server{} location:

rewrite ^/(.*)/favicon.ico$ /favicon.ico last;

Voila. Restart the nginx daemon and you will see slightly decreased load on your box.


Comments

  1. Pitfall says:

    Are you sure about this? break and last is ignored on server level config:
    http://forum.nginx.org/read.php?2,28189,28189

  2. Rob says:

    Why don’t you just correct the link to the favicon in the first place so you don’t need to redirect it.

Leave a Reply