Nginx服务器无法记录到图片或CSS等静态文件访问日志的解决办法
最近维护一台服务器,发现访问其图片或JS,CSS等静态资源时,不会被记录到 access_log
指定的文件中,然后开始排查,由于服务器上载有两个网站,只希望其中一个网站记录到日志,那么就不能从Nginx的总配置文件入手,需要单独打开网站的配置文件(宝塔可以在网站->配置文件中找到),发现一段代码:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log /dev/null;
}
发现代码段中 access_log
所指定的是 /dev/null
,熟悉Linux的朋友都知道, /dev/null
是一个黑洞,它可以被写入,但写入的同时会自动丢弃掉所有写入的信息,相当于一个没有底的垃圾桶,你可以往里扔东西,但永远无法再见到。
所以,头绪就来了, /dev/null
改为所需要保存的日志地址即可,修改代码为:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
#声明需要记录日志,并指定日志保存在指定的 `示例.com.log` 中
access_log /www/wwwlogs/示例.com.log;
}
问题解决,可以正常记录到访问信息。
同理,如果想直接改Nginx的总配置信息,也可以通过上述方法修改。
1 comment
To fill this form if you wanna discuss.
不错,刚好要用到