Turning off access_logs for Load Balancer TCP port checks

Maxim Dounin mdounin at mdounin.ru
Mon Feb 22 14:44:33 MSK 2010


Hello!

On Mon, Feb 22, 2010 at 06:55:17PM +0900, Zev Blut wrote:

> We have load balancers that are doing port checks on our NGINX servers.
> Each of these checks creates an entry in our log file like this:
> 
> 10.0.0.58 - - [22/Feb/2010:18:50:21 +0900] "-" 400 0 "-" "-" 0.000
> "-" "-" "-" [-] - - - [-] [-]
> 
> Does anyone have an idea of how I can stop logging these requests?

The only option you have is to turn off logging for the default 
server on the port in question (and turn it on again for 
individual locations if desired).  Try something like this:

    server {
        listen 80 default;
        access_log off;
        
        location / { 
            access_log /path/to/log;
            ...
        }
    }

Such "requests" doesn't pass normal request processing pipeline as 
they aren't really requests and even connection to client is 
already closed.  They are logged in configuration context which 
happens to be here - default server's one.

> I have tried
> 
> location / {
>    if ($remote_addr ~* 10\.0\.0.\.i.+) {
>       access_log off;
>    }
> }
> 
> But this does not work.  I have also tried putting the if and
> access_log check in the http directive.  But access_log commands are
> not allowed there.  So we might want to update the context docs
> here.
> http://wiki.nginx.org/NginxHttpLogModule

It's "if" which isn't allowed at http level, not access_log.

Maxim Dounin



More information about the nginx mailing list