【日志过滤】Nginx日志过滤 使用ngx_log_if不记录特定日志

时间:2023-03-09 17:11:37
【日志过滤】Nginx日志过滤 使用ngx_log_if不记录特定日志

ngx_log_if是Nginx的一个第三方模块。它在Github上的描述是这样介绍的:ngx_log_if是一个独立的模块,允许您控制不要写的访问日志,类似于Apache的"CustomLog env = XXX"

第一步:

先到Github下载ngx_log_if地址https://github.com/cfsego/ngx_log_if/

第二步:

安装第三方模块到Nginx。第三方模块的安装可以参考http://wiki.nginx.org/3rdPartyModules 使用--add-module添加解压后的ngx_log_if如下

./configure --add-module=/var/local/ngx_log_if-master

然后再编译安装Nginx即可。

第三步:

配置access_log_bypass_if到nginx.conf配置文件中

server {
location / {
access_log_bypass_if ($status = 404); #不记录404状态的所有日志信息
access_log_bypass_if ($uri ~* 'images'); #不记录uri中所有images目录下文件的日志信息
access_log_bypass_if ($uri = '/index.html'); #不记录uri为/index.html的日志信息
access_log_bypass_if ($host ~* 'tonv.cc'); #不记录host为tonv.cc的所有日志信息
}
}

重启Nginx即可过滤不显示特定的日志了