Turning off access_logs for Load Balancer TCP port checks

Zev Blut zblut at cerego.co.jp
Mon Feb 22 14:59:13 MSK 2010


Hello,

On 02/22/2010 08:44 PM, Maxim Dounin wrote:
> 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.

Thanks for the suggestion.  That works.
I might try making a new server default with the access_log off just for 
it.  If that does not work, I will have a lot of access_log directives.


>> 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.

Ah yes, you are right.  Sorry for the confusion.

Thanks for the options!
Zev



More information about the nginx mailing list