fbpx

NGINX

Nginx: Disable logging of Varnish backend probes

by , , revisited on


We have by far the largest RPM repository with NGINX module packages and VMODs for Varnish. If you want to install NGINX, Varnish, and lots of useful performance/security software with smooth yum upgrades for production use, this is the repository for you.
Active subscription is required.

Once you have configured Varnish backend probes, you might see all of the in your backend application access logs. Most likely you want those to be filtered and not logged. Filtering those requests will make your access log contain more relevant entries.

Based on my answer for this question on StackOverflow.

In your nginx.conf put the following inside http { ... } block:

map "$request_method:$request_uri:$remote_addr" $loggable {
    "HEAD:/:127.0.0.1" 0;
    default 1;    
}

Find your access_log directive and add the if condition to it like so:

access_log /path/to/access.log combined if=$loggable;

What this does, is logs requests conditionally: a HEAD request to / made by localhost, will not be logged. Everything else is logged as usual.

Naturally, you will have to adjust "HEAD:/:127.0.0.1" if your probe uses different request method, resource or if Varnish is not on the same machine, e.g. "GET:/healthcheck:1.2.3.4" will not log GET requests to /healthcheck by 1.2.3.4.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: