ようへいの日々精進XP

よかろうもん

Nginx で特定の UserAgent からのアクセスはログに記録しない方法の一つ

やりたいこと

  • ELB からのヘルスチェックログはログに記録したくないよ

解の一つ

参考

bjornjohansen.no

除外する UserAgent を設定

  • /etc/nginx/conf.d/log.conf
map $http_user_agent $log_ua {

    ~ELB-HealthChecker 0;

    default 1;
}

Nginx のアクセスログ内では UserAgent は $http_user_agent という変数に格納されているので、map モジュールを利用してフィルタする。

Web サーバーの設定(アクセスログの設定)

  • /etc/nginx/conf.d/app.conf
server {
    listen       80;
    server_name  localhost;

(略)

    access_log  /var/log/nginx/access.log  main if=$log_ua;
}

以上

他にもやり方はあるかもしれませんが、メモでした。