对于网站的 nginx 日志,三分之二以上是 css js 及图片等静态文件的访问日志。
禁用静态文件日志的好处
- 提升 IO 性能,避免无意义的写入磁盘操作
- 便于实时查看 nginx 日志
禁用方法
修改全局 nginx.conf 文件
log_format compression '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" "$gzip_ratio"';
map $request_uri $loggable {
default 1;
~*\.(ico|css|js|gif|jpg|jpeg|png|svg|woff|ttf|eot)$ 0;
}
access_log /var/log/nginx/access.log compression if=$loggable;
这样即可过滤掉 css js 及图片等静态资源文件的日志。
但是,这种写法有一个问题,无法过滤带时间戳的资源文件格式,例如:
index.css?t=20201121
解决方案是将 request_uri 修改成 uri 即可。所以,最终的版本是:
log_format compression '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" "$gzip_ratio"';
map $request_uri $loggable {
default 1;
~*\.(ico|css|js|gif|jpg|jpeg|png|svg|woff|ttf|eot)$ 0;
}
access_log /var/log/nginx/access.log compression if=$loggable;
参考
https://serverfault.com/questions/875198/preventing-the-nginx-access-log-from-filling-up-with-static-requests/875352
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式